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

Disassembly:
sub esp, 0xcc
mov ax, word [esp + 0xdc]
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov byte [esi + 4], 0xa
mov word [esi + 0x10], ax
lea eax, [esi + 0xc0]
lea ecx, [esi + 0xbc]
push eax
lea edx, [esi + 0xb8]
push ecx
push edx
lea ecx, [esp + 0x60]
lea edx, [esp + 0x5c]
push ecx
lea eax, [esp + 0x5c]
push edx
lea ecx, [esp + 0x5c]
push eax
lea edx, [esp + 0x5c]
push ecx
lea eax, [esi + 0xac]
push edx
lea ecx, [esi + 0xa8]
push eax
lea edx, [esi + 0xa4]
push ecx
lea eax, [esp + 0x68]
push edx
lea ecx, [esp + 0x54]
push eax
lea edx, [esp + 0x54]
push ecx
lea eax, [esp + 0x54]
push edx
lea ecx, [esp + 0x54]
push eax
lea edx, [esp + 0x54]
push ecx
lea eax, [esi + 0x88]
push edx
lea ecx, [esi + 0x8c]
push eax
lea edx, [esi + 0x84]
push ecx
lea eax, [esp + 0x60]
push edx
lea ecx, [esp + 0x6e]
push eax
lea edx, [esp + 0x80]
push ecx
lea eax, [esp + 0x8a]
push edx
lea ecx, [esp + 0xb4]
push eax
lea edx, [esi + 0x68]
push ecx
lea eax, [esi + 0x64]
push edx
lea ecx, [esi + 0x62]
push eax
lea edx, [esi + 0x60]
push ecx
lea eax, [esi + 0x5e]
push edx
lea ecx, [esi + 0x5c]
push eax
lea edx, [esp + 0x88]
push ecx
lea eax, [esi + 0x58]
push edx
lea ecx, [esp + 0xb4]
push eax
lea edx, [esi + 0x54]
push ecx
lea edi, [esi + 0x3c]
lea ebx, [esi + 0x38]
lea ebp, [esi + 0x34]
push edx
lea eax, [esp + 0xe2]
lea ecx, [esp + 0xc2]
push eax
lea edx, [esi + 0x50]
push ecx
push edx
push edi
push ebx
lea eax, [esp + 0xea]
push ebp
lea ecx, [esi + 0x2c]
push eax
lea edx, [esi + 0x2a]
push ecx
lea eax, [esp + 0xdc]
push edx
lea ecx, [esp + 0xde]
push eax
lea edx, [esp + 0xfa]
push ecx
lea eax, [esp + 0xe2]
push edx
lea ecx, [esp + 0x10e]
push eax
lea edx, [esi + 0x16]
push ecx
lea eax, [esi + 0xe]
push edx
lea ecx, [esi + 0xc]
push eax
mov eax, dword [esp + 0x1ac]
lea edx, [esp + 0x130]
push ecx
push edx
push str._s__hd__hd__hd__hd__hd__hd__hd__hd__hd__f__hd__f__f__f__hd__hd__hd__hd__hd__hd__hd__hd__hd__hd__hd__f__f__hd__hd__hd__hd__hd__hd__f__f__hd__hd__hd__hd__hd__hd__d__d__d__hd__hd__hd__hd__hd__f__f__f
push eax
call fcn.005fc33a
add esp, 0xdc
lea ebp, [esi + 0x90]
lea ebx, [esi + 0x72]
lea edi, [esi + 0x78]
mov dword [esp + 0x5c], 3
mov edx, dword [esp + 0xe0]
lea ecx, [esp + 0x12]
push ecx
push edi
push ebx
push str._hd__f__hd
push edx
call fcn.005fc33a
mov al, byte [esp + 0x26]
add esp, 0x14
mov byte [ebp], al
mov eax, dword [esp + 0x5c]
add edi, 4
add ebx, 2
inc ebp
dec eax
mov dword [esp + 0x5c], eax
jne 0x478ccc
mov ebp, dword [esp + 0xe0]
lea ecx, [esp + 0x60]
push ecx
push 0x651e50
push ebp
call fcn.005fc33a
mov eax, dword [esp + 0x6c]
xor ebx, ebx
add esp, 0xc
cmp al, bl
mov byte [esi + 0x9b], al
jbe 0x478dc4
and eax, 0xff
push 8
push eax
call fcn.005fab6a
mov dword [esi + 0x9c], eax
mov al, byte [esi + 0x9b]
add esp, 8
xor edi, edi
cmp al, bl
jbe 0x478dca
lea edx, [esp + 0x4e]
lea eax, [esp + 0x16]
push edx
lea ecx, [esp + 0x3e]
push eax
push ecx
push 0x651e44
push ebp
call fcn.005fc33a
mov ax, word [esp + 0x4e]
add esp, 0x14
cmp ax, bx
jl 0x478d87
movsx edx, ax
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + edx*4]
jmp 0x478d89
xor ecx, ecx
mov edx, dword [esi + 0x9c]
movsx eax, di
shl eax, 3
inc edi
mov dword [eax + edx], ecx
mov ecx, dword [esi + 0x9c]
mov dl, byte [esp + 0x16]
mov byte [eax + ecx + 4], dl
mov ecx, dword [esi + 0x9c]
mov dl, byte [esp + 0x4e]
mov byte [eax + ecx + 5], dl
movzx ax, byte [esi + 0x9b]
cmp di, ax
jl 0x478d51
jmp 0x478dca
mov dword [esi + 0x9c], ebx
lea ecx, [esp + 0x26]
lea edx, [esp + 0x42]
push ecx
lea eax, [esp + 0x26]
push edx
lea ecx, [esp + 0x62]
push eax
lea edx, [esp + 0x48]
push ecx
lea eax, [esp + 0x48]
push edx
lea ecx, [esp + 0x52]
push eax
lea edx, [esp + 0x32]
push ecx
push edx
push str._hd__hd__hd__hd__hd__hd__hd__hd
push ebp
call fcn.005fc33a
mov ax, word [esp + 0x42]
mov ecx, dword [esp + 0x110]
add esp, 0x28
cmp ax, bx
jl 0x478e19
movsx eax, ax
mov eax, dword [ecx + eax*4]
jmp 0x478e1b
xor eax, eax
mov dword [esi + 0x40], eax
mov ax, word [esp + 0x3e]
cmp ax, bx
jl 0x478e30
movsx edx, ax
mov eax, dword [ecx + edx*4]
jmp 0x478e32
xor eax, eax
mov dword [esi + 0x48], eax
mov ax, word [esp + 0x1e]
cmp ax, bx
jl 0x478e47
movsx eax, ax
mov eax, dword [ecx + eax*4]
jmp 0x478e49
xor eax, eax
mov dword [esi + 0x44], eax
mov ax, word [esp + 0x5a]
cmp ax, bx
jl 0x478e5e
movsx edx, ax
mov eax, dword [ecx + edx*4]
jmp 0x478e60
xor eax, eax
mov cl, byte [esp + 0x42]
mov dl, byte [esp + 0x26]
mov dword [esi + 0x4c], eax
mov al, byte [esp + 0x22]
mov byte [esi + 0xa0], al
mov ax, word [esp + 0x52]
mov byte [esi + 0xa1], cl
cmp ax, bx
mov byte [esi + 0xa2], dl
jl 0x478e9a
mov ecx, dword [esp + 0xe4]
movsx eax, ax
mov eax, dword [ecx + eax*4]
jmp 0x478ea3
mov ecx, dword [esp + 0xe4]
xor eax, eax
mov dword [esi + 0x18], eax
mov ax, word [esp + 0x2a]
cmp ax, bx
jl 0x478eb8
movsx edx, ax
mov eax, dword [ecx + edx*4]
jmp 0x478eba
xor eax, eax
mov dword [esi + 0x1c], eax
mov ax, word [esp + 0x46]
cmp ax, bx
jl 0x478ecf
movsx eax, ax
mov eax, dword [ecx + eax*4]
jmp 0x478ed1
xor eax, eax
mov dword [esi + 0x20], eax
mov ax, word [esp + 0x2e]
cmp ax, bx
jl 0x478ee6
movsx edx, ax
mov eax, dword [ecx + edx*4]
jmp 0x478ee8
xor eax, eax
mov dword [esi + 0x24], eax
mov al, byte [esp + 0x58]
mov cl, byte [esp + 0x32]
mov byte [esi + 0x6c], al
mov al, byte [esp + 0x36]
mov dl, byte [esp + 0x4a]
mov byte [esi + 0x52], al
mov al, byte [esp + 0x14]
mov byte [esi + 0x70], al
mov al, byte [esp + 0x20]
mov byte [esi + 0x6d], cl
mov cl, byte [esp + 0x56]
mov byte [esi + 0x95], al
mov byte [esi + 0x30], dl
movzx ax, byte [esp + 0x2c]
fld dword [esi + 0xb8]
fcomp dword [0x61b584]
mov dl, byte [esp + 0x10]
mov byte [esi + 0x53], cl
mov cl, byte [esp + 0x18]
mov byte [esi + 0x5a], dl
mov dl, byte [esp + 0x1c]
mov byte [esi + 0x93], cl
mov cl, byte [esp + 0x24]
mov word [esi + 0x6e], ax
mov al, byte [esp + 0x38]
mov byte [esi + 0x94], dl
mov dl, byte [esp + 0x28]
mov byte [esi + 0x96], cl
mov cl, byte [esp + 0x30]
mov byte [esi + 0x99], al
mov al, byte [esp + 0x44]
mov byte [esi + 0x97], dl
mov dl, byte [esp + 0x34]
mov byte [esi + 0x28], cl
mov cl, byte [esp + 0x3c]
mov byte [esi + 0xb1], al
mov al, byte [esp + 0x50]
mov byte [esi + 0x56], dl
mov dl, byte [esp + 0x40]
mov byte [esi + 0x9a], cl
mov cl, byte [esp + 0x48]
mov byte [esi + 0xb4], al
fnstsw ax
mov byte [esi + 0x98], dl
mov dl, byte [esp + 0x4c]
mov byte [esi + 0xb2], cl
mov cl, byte [esp + 0x54]
test ah, 0x40
mov byte [esi + 0xb3], dl
mov byte [esi + 0xb5], cl
je 0x478fd2
mov edx, dword [esi + 0x34]
mov dword [esi + 0xb8], edx
fld dword [esi + 0xbc]
fcomp dword [0x61b584]
fnstsw ax
test ah, 0x40
je 0x478fee
mov eax, dword [esi + 0x38]
mov dword [esi + 0xbc], eax
fld dword [esi + 0xc0]
fcomp dword [0x61b584]
fnstsw ax
test ah, 0x40
je 0x47900a
mov ecx, dword [esi + 0x3c]
mov dword [esi + 0xc0], ecx
mov ax, word [esi + 0x10]
lea edi, [esp + 0x64]
mov word [esi + 0x12], ax
mov word [esi + 0x14], ax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esi + 0xb0], bl
test cx, cx
mov byte [esi + 0x5b], bl
jle 0x479045
lea edx, [esp + 0x64]
lea eax, [esi + 8]
push edx
push eax
mov dword [eax], ebx
call fcn.0049a010
add esp, 8
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xcc
ret 0x10