Function at 0x4766a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1c]
mov ebx, dword [esi + 0xb80]
push edi
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 0x1c0]
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp eax, dword [edi + 0xe0]
jb 0x4766df
or dword [edi + 0x1ec], 0x10
mov eax, 0xc000009a
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0xc
cmp byte [ebx + 0x3d], cl
je 0x4766f3
mov eax, 0xc000010a
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0xc
mov eax, dword [ebx + 8]
add dword [eax + 8], 0x28488
push 6
push ecx
adc dword [eax + 0xc], ecx
mov eax, 0x1380
call fcn.00470a00
mov ebp, eax
test ebp, ebp
je 0x4766d0
mov ecx, dword [esi + 0xb88]
mov edx, dword [esi + 0xb8c]
mov dword [ebp + 0x40], 0x476600
mov dword [ebx + 0x7764], ebp
lea eax, [ebp + 0x60]
mov dword [eax + 4], eax
mov dword [eax], eax
lea eax, [ebp + 0x68]
mov dword [eax + 4], eax
mov dword [eax], eax
lea eax, [ebp + 0x70]
mov dword [eax + 4], eax
mov dword [eax], eax
lea eax, [ebp + 0x78]
mov dword [eax + 4], eax
mov dword [eax], eax
lea eax, [ebp + 0x80]
mov dword [eax + 4], eax
mov dword [eax], eax
mov eax, dword [esi + 0xb90]
mov dword [ebp + 0x1f0], ecx
mov ecx, dword [esi + 0xb94]
mov dword [ebp + 0x1f4], edx
mov edx, dword [esi + 0xba4]
mov dword [ebp + 0x1f8], eax
mov eax, dword [esi + 0xba8]
mov dword [ebp + 0x1fc], ecx
mov dword [ebp + 0x634], edx
mov dl, byte [esi + 0xbad]
mov dword [ebp + 0x638], eax
mov cl, byte [ebx + 0xbd]
and cl, 6
or cl, byte [esi + 0xbac]
mov byte [ebp + 0x64c], 1
mov byte [ebp + 0xa0], cl
mov byte [ebp + 0x64e], dl
mov byte [ebp + 0x650], 0
mov al, byte [ebx + 0xc4]
mov byte [ebp + 0x652], al
mov eax, dword [esi + 0xb98]
mov esi, dword [esi + 0xb9c]
mov ecx, eax
or ecx, esi
jne 0x4767e6
or eax, 0xffffffff
or esi, 0xffffffff
mov edx, dword [ebx + 0x88]
and edx, eax
mov eax, dword [ebx + 0x8c]
and eax, esi
mov dword [ebp + 0x22c], eax
mov dword [ebp + 0x228], edx
lea eax, [ebx + 0x68]
cmp dword [eax], eax
mov dword [ebp + 0x658], 0
sete cl
mov byte [ebp + 0x645], cl
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 0x14]
shrd edx, eax, 8
shr eax, 8
add edx, dword [edi + 0xa8]
adc eax, dword [edi + 0xac]
add edx, dword [edi + 0x88]
adc eax, dword [edi + 0x8c]
mov dword [ebp + 0x240], edx
mov dword [ebp + 0x244], eax
mov eax, dword [ebx + 0x98]
test eax, eax
je 0x47686b
test cl, cl
je 0x47686b
lea ecx, [eax + eax*2]
mov edx, dword [ecx*8 + 0x90a420]
mov dword [ebp + 0x614], edx
jmp 0x476878
mov esi, edi
call fcn.00470330
mov dword [ebp + 0x614], eax
lea eax, [ebp + 0x670]
mov dword [ebp + 0x60c], 0x103
mov dword [ebp + 0x12b0], 1
lea esi, [ebx + 0x7728]
mov ecx, 0x2e0
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [eax + 0x3c], ebp
test byte [ebx + 0xbd], 1
je 0x4768be
or byte [ebp + 0xa0], 1
mov byte [eax + 0x16], 4
mov byte [eax + 0x17], 8
jmp 0x4768c6
mov byte [eax + 0x16], 3
mov byte [eax + 0x17], 4
test byte [ebp + 0xa0], 1
mov esi, dword [esp + 0x1c]
jne 0x4768e3
test byte [esi + 0xc0], 2
je 0x4768e3
mov byte [ebp + 0x60b], 1
mov eax, dword [ebx + 0x1a88]
or eax, dword [ebx + 0x1a8c]
je 0x476955
mov ecx, dword [ebx + 0x1a80]
mov dword [ebp + 0x208], ecx
mov edx, dword [ebx + 0x1a84]
mov dword [ebp + 0x20c], edx
mov eax, dword [ebx + 0x1a88]
mov dword [ebp + 0x210], eax
mov ecx, dword [ebx + 0x1a8c]
mov dword [ebp + 0x214], ecx
mov edx, dword [ebx + 0x1a90]
mov dword [ebp + 0x634], edx
mov eax, dword [ebx + 0x1a94]
xor edi, edi
mov dword [ebp + 0x638], eax
mov dword [ebx + 0x1a80], edi
mov dword [ebx + 0x1a84], edi
mov dword [ebx + 0x1a88], edi
mov dword [ebx + 0x1a8c], edi
jmp 0x476973
mov ecx, dword [ebp + 0x638]
mov edx, dword [ebp + 0x634]
push ecx
push edx
push ebp
xor ecx, ecx
mov edi, ebx
call fcn.00475c80
mov dword [esp + 0x10], eax
xor edi, edi
mov dword [ebp + 0x88], ebx
mov eax, dword [ebx + 0xd8]
mov dword [ebp + 0x610], eax
mov edx, dword [esi + 0x58]
mov dword [ebp + 0x64], edx
lea ecx, [esi + 0x54]
mov dword [ebp + 0x60], ecx
lea eax, [ebp + 0x60]
mov dword [edx], eax
mov dword [ecx + 4], eax
mov edx, dword [esi + 0x30]
mov dword [ebp + 0x6c], edx
lea ecx, [esi + 0x2c]
mov dword [ebp + 0x68], ecx
lea eax, [ebp + 0x68]
mov dword [edx], eax
mov dword [ecx + 4], eax
inc dword [esi + 0x1c4]
mov edx, dword [ebx + 0x6c]
lea ecx, [ebx + 0x68]
lea eax, [ebp + 0x70]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ecx + 4], eax
inc dword [ebx + 0x14]
cmp dword [esp + 0x10], edi
jl 0x476e50
test byte [ebx + 0xbd], 4
je 0x4769f6
mov ecx, dword [ebx + 0x19c8]
mov dword [ebp + 0x200], ecx
mov edx, dword [ebx + 0x19cc]
mov dword [ebp + 0x204], edx
jmp 0x476a01
mov esi, ebp
call fcn.0046d430
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], edi
jl 0x476e50
mov ecx, dword [ebp + 0x634]
mov esi, dword [ebp + 0x20c]
xor eax, eax
add ecx, dword [ebp + 0x208]
mov dword [ebp + 0x808], 0x200
adc esi, eax
mov dword [ebp + 0x80c], edi
test byte [ebx + 0xbd], 4
je 0x476a6f
mov edx, dword [ebx + 0x1998]
mov dword [ebp + 0x800], edx
mov eax, dword [ebx + 0x199c]
mov dword [ebp + 0x804], eax
movzx eax, byte [ebp + 0x687]
cdq
sub ecx, eax
sbb esi, edx
mov dword [ebp + 0x7a0], ecx
mov dword [ebp + 0x7a4], esi
jmp 0x476d18
mov al, byte [ebp + 0xa0]
test al, 2
je 0x476bef
mov edx, dword [ebp + 0x1f0]
mov dword [ebp + 0x800], edx
mov edx, dword [ebp + 0x1f4]
mov dword [ebp + 0x804], edx
mov edx, dword [ebp + 0x1fc]
test al, 1
mov eax, dword [ebp + 0x1f8]
mov dword [ebp + 0x780], edi
mov dword [ebp + 0x784], edi
mov dword [ebp + 0x798], 1
mov dword [ebp + 0x79c], edi
mov dword [ebp + 0x7a8], edi
mov dword [ebp + 0x7ac], edi
mov dword [ebp + 0x7b0], 4
mov dword [ebp + 0x7b4], edi
mov dword [ebp + 0x7b8], 5
mov dword [ebp + 0x7bc], edi
mov dword [ebp + 0x794], edi
je 0x476b92
mov dword [ebp + 0x788], eax
mov dword [ebp + 0x78c], edx
mov dword [ebp + 0x790], edi
mov dword [ebp + 0x7c0], 8
mov dword [ebp + 0x7c4], edi
mov dword [ebp + 0x7c8], 0xa0908070
mov dword [ebp + 0x7cc], 0xf0e0d0c0
mov dword [ebp + 0x7d0], 0xa
mov dword [ebp + 0x7d4], edi
mov dword [ebp + 0x7d8], 0xb
mov dword [ebp + 0x7dc], edi
mov dword [ebp + 0x7e0], 0xc
mov dword [ebp + 0x7e4], edi
mov dword [ebp + 0x7e8], 0xd
mov dword [ebp + 0x7ec], edi
mov dword [ebp + 0x7f0], 0xe
mov dword [ebp + 0x7f4], edi
mov dword [ebp + 0x7f8], 0xf
mov dword [ebp + 0x7fc], edi
jmp 0x476c8c
mov dword [esp + 0x10], eax
mov eax, ecx
add eax, 0xfffffff8
mov dword [esp + 0x14], edx
push edi
mov dword [ebp + 0x7a0], eax
mov edx, esi
adc edx, 0xffffffff
lea eax, [esp + 0x14]
push eax
mov eax, dword [ebp + 0x69c]
add ecx, 0xfffffffc
push 4
adc esi, 0xffffffff
push esi
mov dword [ebp + 0x7a4], edx
push ecx
mov dl, 2
lea ecx, [ebp + 0x670]
mov dword [ebp + 0x788], 2
mov dword [ebp + 0x78c], edi
mov dword [ebp + 0x790], 3
call eax
jmp 0x476d18
cmp byte [ebx + 0xc0], 0
jne 0x476c1f
cmp dword [ebx + 0xdc], edi
jne 0x476c1f
mov eax, dword [ebx + 0x1998]
mov edx, dword [ebx + 0x199c]
or eax, edx
je 0x476c18
mov eax, dword [ebx + 0x1998]
jmp 0x476c3e
mov eax, 0x87654321
jmp 0x476c3c
mov eax, dword [ebx + 0x19a0]
mov edx, dword [ebx + 0x19a4]
or eax, edx
je 0x476c37
mov eax, dword [ebx + 0x19a0]
jmp 0x476c3e
mov eax, 0x87654322
xor edx, edx
test byte [ebp + 0xa0], 1
mov dword [ebp + 0x804], edx
mov edx, dword [ebp + 0x1f0]
mov dword [ebp + 0x800], eax
mov eax, dword [ebp + 0x1f4]
je 0x476ca0
add ecx, 0xffffffd8
mov dword [ebp + 0x788], edx
mov edx, dword [ebp + 0x1f8]
mov dword [ebp + 0x78c], eax
mov eax, dword [ebp + 0x1fc]
adc esi, 0xffffffff
mov dword [ebp + 0x790], edx
mov dword [ebp + 0x794], eax
and ecx, 0xfffffff0
add ecx, 0xffffffd8
adc esi, 0xffffffff
mov dword [ebp + 0x7a0], ecx
mov dword [ebp + 0x7a4], esi
jmp 0x476d18
add ecx, 0xfffffffc
mov dword [ebp + 0x780], edx
mov edx, dword [ebp + 0x1f8]
mov dword [ebp + 0x784], eax
mov eax, dword [ebp + 0x1fc]
adc esi, 0xffffffff
mov dword [ebp + 0x798], edx
mov dword [ebp + 0x79c], eax
mov dword [ebp + 0x7a0], ecx
mov dword [ebp + 0x7a4], esi
cmp byte [ebx + 0xc0], 0
jne 0x476d18
cmp dword [ebx + 0xdc], edi
jne 0x476d18
cmp byte [ebx + 0xc5], 0
jne 0x476d18
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x130]
mov dword [ebp + 0x7b8], ecx
mov dword [ebp + 0x7bc], edi
mov edx, dword [eax + 0x134]
mov dword [ebp + 0x7b0], edx
mov dword [ebp + 0x7b4], edi
mov edx, dword [ebp + 0x88]
movzx eax, byte [edx + 0xc3]
movsx ecx, byte [ebp + 0x650]
add eax, ecx
cmp eax, edi
jg 0x476d37
mov eax, 3
mov byte [ebp + 0x651], al
mov al, byte [ebx + 0xbd]
and al, 4
mov ecx, dword [ebx + 0x1980]
mov esi, dword [ebx + 0x1984]
je 0x476d5f
mov esi, dword [ebx + 0x1a68]
mov ecx, dword [esi + 0x30]
mov esi, dword [esi + 0x34]
push edi
push edi
test al, al
je 0x476d6d
push edi
push edi
push edi
push edi
push edi
push edi
jmp 0x476d85
mov eax, dword [edx + 0x1a68]
mov edx, dword [eax + 0x1d4]
mov eax, dword [eax + 0x1d0]
push edx
push eax
push edi
push edi
push esi
push ecx
mov ecx, ebp
call fcn.00476570
cmp eax, edi
mov dword [esp + 0x10], eax
jl 0x476e50
mov byte [ebp + 0x64b], 1
mov ecx, 1
add dword [ebx + 0xdc], ecx
cmp byte [ebx + 0xc0], 0
mov eax, dword [ebx + 0xdc]
jne 0x476dc9
cmp eax, ecx
jne 0x476dc9
mov esi, dword [esp + 0x1c]
add dword [esi + 0x1bc], ecx
jmp 0x476dcd
mov esi, dword [esp + 0x1c]
add dword [esi + 0x1c0], ecx
cmp dword [ebx + 0xdc], ecx
jne 0x476e13
mov eax, dword [esi + 0x78]
cmp eax, edi
je 0x476e59
mov cl, byte [eax + 8]
cmp cl, 0x3b
je 0x476def
cmp cl, 0x41
jne 0x476df8
lea ecx, [ebp + 0x670]
mov dword [eax + 0x14], ecx
mov eax, dword [eax + 4]
cmp eax, edi
jne 0x476de2
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov dword [edx], ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0xc
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0xbb4]
lea ecx, [eax + 0x670]
cmp eax, edi
jne 0x476e2d
lea ecx, [ebp + 0x670]
lea eax, [ebp + 0x670]
push eax
push ecx
push 0x3d
call fcn.0048aaf0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov dword [edx], ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0xc
mov ecx, ebp
call fcn.00471c20
xor ebp, ebp
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
pop edi
pop esi
mov dword [edx], ebp
pop ebp
pop ebx
add esp, 8
ret 0xc