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

Disassembly:
sub esp, 0x18
push ebx
push ebp
push esi
mov esi, dword [esp + 0x28]
push edi
movsx ebp, byte [esi + 0x44]
mov eax, dword [esi]
mov dword [esp + 0x10], eax
mov ebx, dword [esi + ebp*4 + 0x78]
mov eax, dword [eax + 4]
movzx ecx, word [esi + ebp*2 + 0x50]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x40]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], ebx
mov ax, word [eax + ecx*2]
mov ch, al
mov cl, ah
movzx eax, word [ebx + 0x14]
movzx edi, cx
and edi, eax
add edi, dword [ebx + 0x38]
cmp byte [ebx + 5], 0
jne 0x47a396
and byte [esi + 0x40], 0xf1
xor eax, eax
cmp byte [esi + 0x42], 1
mov dword [esp + 0x2c], 0
mov word [esi + 0x24], ax
jne 0x47a380
movzx ecx, word [esi + ebp*2 + 0x50]
test cx, cx
je 0x47a380
mov eax, dword [esi + ebp*4 + 0x78]
cmp byte [eax + 5], 0
je 0x47a380
lea eax, [ecx - 1]
mov word [esi + ebp*2 + 0x50], ax
jmp 0x47a396
lea eax, [esp + 0x2c]
push eax
push esi
call fcn.00447000
add esp, 8
test eax, eax
jne 0x47a570
mov dl, byte [esi + 0x40]
test dl, 0x20
je 0x47a3d2
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x34]
mov eax, dword [eax + 8]
test eax, eax
je 0x47a3cc
lea esp, [esp]
cmp eax, esi
je 0x47a3c5
test ecx, ecx
je 0x47a490
cmp dword [eax + 0x34], ecx
je 0x47a490
mov eax, dword [eax + 8]
test eax, eax
jne 0x47a3b0
and dl, 0xdf
mov byte [esi + 0x40], dl
cmp dword [esi + 0x48], 0
jne 0x47a3ec
push 0
push dword [esi + 0x14]
push dword [esi + 0x10]
push dword [esp + 0x1c]
call fcn.00465c80
add esp, 0x10
push dword [ebx + 0x48]
call fcn.00495010
add esp, 4
test eax, eax
jne 0x47a570
lea eax, [esp + 0x2c]
push eax
push edi
push ebx
call fcn.00448240
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
movzx eax, word [esp + 0x3c]
push eax
push dword [esp + 0x2c]
push ebx
call fcn.0044d1d0
mov eax, dword [esp + 0x2c]
add esp, 0x1c
test eax, eax
jne 0x47a570
cmp byte [ebx + 5], al
jne 0x47a518
movsx eax, byte [esi + 0x44]
mov ebx, dword [esi + eax*4 + 0x78]
mov eax, dword [esi + ebp*4 + 0x7c]
mov dword [esp + 0x2c], ebx
movzx ecx, word [ebx + 0x12]
mov eax, dword [eax + 0x54]
mov edx, dword [ebx + 0x38]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x40]
mov ax, word [eax + ecx*2 - 2]
mov ch, al
mov cl, ah
movzx eax, word [ebx + 0x14]
movzx ecx, cx
and ecx, eax
lea eax, [edx + 4]
add ecx, edx
mov dword [esp + 0x20], ecx
cmp ecx, eax
jae 0x47a4b3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
mov dword [esp + 4], 0xf1e4
jmp fcn.0047e090
test eax, eax
je 0x47a3cc
push esi
push ecx
push eax
call fcn.004735c0
add esp, 0xc
test eax, eax
je 0x47a3d2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [ebx + 0x4c]
push ecx
push ebx
call eax
movzx ebx, ax
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + 0x50]
mov eax, dword [esp + 0x34]
push dword [eax + 0x48]
call fcn.00495010
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x2c]
lea eax, [ebx + 4]
push edi
push eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffffc
push eax
push dword [esp + 0x38]
push dword [esp + 0x48]
call fcn.00465ab0
mov ecx, dword [esp + 0x54]
lea eax, [esp + 0x38]
push eax
push ebx
movzx eax, word [ecx + 0x12]
dec eax
push eax
push ecx
call fcn.0044d1d0
mov eax, dword [esp + 0x48]
add esp, 0x38
test eax, eax
jne 0x47a570
push esi
call fcn.004440f0
mov edi, eax
add esp, 4
test edi, edi
jne 0x47a56e
movsx ecx, byte [esi + 0x44]
cmp ecx, ebp
jle 0x47a565
nop
mov cl, byte [esi + 0x44]
movsx eax, cl
dec cl
mov eax, dword [esi + eax*4 + 0x78]
mov byte [esi + 0x44], cl
test eax, eax
je 0x47a54e
push dword [eax + 0x48]
call fcn.00494f30
add esp, 4
movsx eax, byte [esi + 0x44]
cmp eax, ebp
jg 0x47a530
push esi
call fcn.004440f0
mov edi, eax
add esp, 4
test edi, edi
jne 0x47a56e
push esi
call fcn.00467dc0
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret