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

Disassembly:
sub esp, 0x9b4
xor eax, eax
push ebp
mov ebp, ecx
push edi
mov ecx, 8
lea edi, [esp + 0x54]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp]
xor edi, edi
push edi
push edi
push eax
call fcn.00499570
mov ecx, dword [ebp]
lea edx, [esp + 0x60]
push ecx
push 0x20
push 1
push edx
call fcn.004990f9
add esp, 0x1c
cmp eax, 0x20
jne 0x476e97
lea ecx, [esp + 0x78]
call fcn.00491930
lea eax, [esp + 0x18]
lea ecx, [esp + 0x54]
push eax
push 0x20
push ecx
lea ecx, [esp + 0x84]
call fcn.00492f11
mov al, byte [esp + 0x9c0]
mov dx, word [esp + 0x28]
mov word [esp + 0x15], di
mov word [esp + 0x14], dx
test al, al
je 0x476d50
lea eax, [esp + 0x3c]
push eax
call fcn.004874a0
mov eax, dword [eax + 4]
add esp, 4
cmp eax, edi
jne 0x476cdd
mov eax, 0x4ad138
push ebx
push esi
lea esi, [esp + 0x1c]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x476d0b
test cl, cl
je 0x476d07
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x476d0b
add eax, 2
add esi, 2
test cl, cl
jne 0x476ce3
xor eax, eax
jmp 0x476d10
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
mov eax, dword [esp + 0x48]
setne bl
cmp eax, edi
je 0x476d3a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x476d31
cmp al, 0xff
je 0x476d31
dec al
mov byte [ecx], al
jmp 0x476d3a
push ecx
call fcn.00498130
add esp, 4
pop esi
mov dword [esp + 0x44], edi
test bl, bl
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
pop ebx
jne 0x476e97
cmp byte [esp + 0x18], 0x50
jne 0x476e97
cmp byte [esp + 0x19], 0x54
jne 0x476e97
mov eax, dword [esp + 0x1a]
mov ecx, dword [esp + 0x1b]
mov edx, dword [esp + 0x1c]
and eax, 0xff
shl eax, 8
and ecx, 0xff
and edx, 0xff
or eax, ecx
mov ecx, dword [esp + 0x1d]
shl eax, 8
or eax, edx
and ecx, 0xff
shl eax, 8
or eax, ecx
mov ecx, 0x4c4778
push eax
call fcn.004761c0
mov edx, dword [esp + 0x1f]
mov ecx, 0x4c4778
push edx
call fcn.004761d0
mov eax, dword [esp + 0x1f]
mov byte [esp + 0xc], 0x2e
mov al, ah
mov cl, ah
and al, 0xf
mov byte [esp + 0x11], 0
add al, 0x30
mov byte [esp + 9], al
mov al, byte [esp + 0x21]
mov dl, al
and al, 0xf
shr cl, 4
add al, 0x30
add cl, 0x30
mov byte [esp + 0xb], al
mov al, byte [esp + 0x22]
mov byte [esp + 8], cl
mov cl, al
and al, 0xf
shr dl, 4
add al, 0x30
add dl, 0x30
mov byte [esp + 0xe], al
mov al, byte [esp + 0x23]
mov byte [esp + 0xa], dl
mov dl, al
and al, 0xf
add al, 0x30
shr cl, 4
shr dl, 4
mov byte [esp + 0x10], al
lea eax, [esp + 8]
add cl, 0x30
add dl, 0x30
push eax
mov byte [esp + 0x11], cl
mov byte [esp + 0x13], dl
call fcn.00498d4b
fstp qword [esp + 0x50]
add esp, 4
call fcn.00487ff0
fsubr qword [esp + 0x4c]
fabs
fcomp qword [0x4ad258]
fnstsw ax
test ah, 0x41
je 0x476e97
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x25]
mov cl, byte [esp + 0x1e]
and edx, 0xff
shl edx, 8
and eax, 0xff
mov byte [ebp + 0x54], cl
mov ecx, dword [esp + 0x26]
add edx, eax
mov eax, dword [esp + 0x27]
and ecx, 0xff
shl edx, 8
add edx, ecx
and eax, 0xff
shl edx, 8
add edx, eax
pop edi
mov dword [ebp + 0x58], edx
mov al, 1
pop ebp
add esp, 0x9b4
ret 4
pop edi
xor al, al
pop ebp
add esp, 0x9b4
ret 4