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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x5c]
cmp eax, dword [ecx + 8]
jbe 0x47b803
sub esp, 0xdc
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xe4]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xe8]
mov dword [esp + 8], edx
call fcn.00473780
mov eax, dword [esp + 0xc]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xbc], ecx
mov edx, dword [esp + 0xec]
mov dword [esp], edx
mov ebx, dword [esp + 0xf0]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0xf4]
mov dword [esp + 8], ebp
call fcn.00473780
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
cmp dword [esp + 0xc], ecx
je 0x47a65d
mov dword [esp + 0xf8], 0xffffffff
add esp, 0xdc
ret
mov dword [esp], ecx
mov edx, dword [esp + 0xbc]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00403220
movzx eax, byte [esp + 0xc]
test al, al
je 0x47a64b
nop
mov eax, dword [esp + 0xe8]
mov ecx, eax
and eax, 0x1f
cmp eax, 0x10
ja 0x47ae9c
cmp eax, 6
ja 0x47a8b9
cmp eax, 1
je 0x47a828
cmp eax, 2
jb 0x47b794
cmp eax, 3
ja 0x47a7e6
cmp eax, 2
jne 0x47a7d2
mov eax, dword [esp + 0xe4]
mov eax, dword [eax]
mov ecx, eax
sar eax, 0x1f
nop
mov edx, dword [esp + 0xf4]
and edx, 0x1f
mov dword [esp + 0x44], edx
cmp edx, 3
ja 0x47a784
cmp edx, 2
jne 0x47a766
mov edx, dword [esp + 0xf0]
mov edx, dword [edx]
mov ebx, edx
sar edx, 0x1f
cmp edx, eax
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp ebx, ecx
xchg esi, ebx
seta bl
xchg esi, ebx
cmp edx, eax
xchg edi, ebx
setg bl
xchg edi, ebx
and esi, ebp
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
jne 0x47a754
cmp ebx, ecx
setb cl
cmp edx, eax
setl al
and ecx, ebp
or eax, ecx
test al, al
je 0x47a742
mov dword [esp + 0xf8], 1
add esp, 0xdc
ret
mov dword [esp + 0xf8], 0
add esp, 0xdc
ret
mov dword [esp + 0xf8], 0xffffffff
add esp, 0xdc
ret
cmp edx, 3
jne 0x47b75a
mov ebp, dword [esp + 0xf0]
movsx edx, byte [ebp]
mov ebx, edx
sar edx, 0x1f
jmp 0x47a6f9
cmp edx, 4
jne 0x47a79e
mov ebp, dword [esp + 0xf0]
movsx edx, word [ebp]
mov ebx, edx
sar edx, 0x1f
jmp 0x47a6f9
cmp edx, 5
jne 0x47a7b7
mov ebp, dword [esp + 0xf0]
mov edx, dword [ebp]
mov ebx, edx
sar edx, 0x1f
jmp 0x47a6f9
cmp edx, 6
jne 0x47b75a
mov ebp, dword [esp + 0xf0]
mov ebx, dword [ebp]
mov edx, dword [ebp + 4]
jmp 0x47a6f9
mov edx, dword [esp + 0xe4]
movsx eax, byte [edx]
mov ecx, eax
sar eax, 0x1f
jmp 0x47a6ce
cmp eax, 4
jne 0x47a7ff
mov edx, dword [esp + 0xe4]
movsx eax, word [edx]
mov ecx, eax
sar eax, 0x1f
jmp 0x47a6ce
cmp eax, 5
jne 0x47a817
mov edx, dword [esp + 0xe4]
mov eax, dword [edx]
mov ecx, eax
sar eax, 0x1f
jmp 0x47a6ce
mov edx, dword [esp + 0xe4]
mov ecx, dword [edx]
mov eax, dword [edx + 4]
jmp 0x47a6ce
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00471a10
movzx eax, byte [esp + 0xc]
mov byte [esp + 0x23], al
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov ecx, dword [esp + 0xf0]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xf4]
mov dword [esp + 8], ecx
call fcn.00471a10
movzx eax, byte [esp + 0x23]
cmp byte [esp + 0xc], al
je 0x47a8a7
test al, al
je 0x47a895
mov dword [esp + 0xf8], 1
add esp, 0xdc
ret
mov dword [esp + 0xf8], 0xffffffff
add esp, 0xdc
ret
mov dword [esp + 0xf8], 0
add esp, 0xdc
ret
cmp eax, 0xc
ja 0x47aa4f
cmp eax, 9
ja 0x47aa14
cmp eax, 7
jne 0x47a9ed
mov eax, dword [esp + 0xe4]
mov eax, dword [eax]
xor ecx, ecx
nop
mov edx, dword [esp + 0xf4]
and edx, 0x1f
mov dword [esp + 0x44], edx
cmp edx, 9
ja 0x47a9a6
cmp edx, 7
jne 0x47a974
mov edx, dword [esp + 0xf0]
mov edx, dword [edx]
xor ebx, ebx
cmp ecx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp eax, edx
xchg esi, ebx
setb bl
xchg esi, ebx
cmp ecx, ebx
xchg edi, ebx
setb bl
xchg edi, ebx
and esi, ebp
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
jne 0x47a962
cmp eax, edx
seta al
cmp ecx, ebx
seta cl
and eax, ebp
or ecx, eax
test cl, cl
je 0x47a950
mov dword [esp + 0xf8], 1
add esp, 0xdc
ret
mov dword [esp + 0xf8], 0
add esp, 0xdc
ret
mov dword [esp + 0xf8], 0xffffffff
add esp, 0xdc
ret
cmp edx, 8
jne 0x47a98b
mov ebp, dword [esp + 0xf0]
movzx edx, byte [ebp]
xor ebx, ebx
jmp 0x47a907
cmp edx, 9
jne 0x47b720
mov ebp, dword [esp + 0xf0]
movzx edx, word [ebp]
xor ebx, ebx
jmp 0x47a907
cmp edx, 0xa
jne 0x47a9bc
mov ebp, dword [esp + 0xf0]
mov edx, dword [ebp]
xor ebx, ebx
jmp 0x47a907
cmp edx, 0xb
jne 0x47a9d3
mov ebp, dword [esp + 0xf0]
mov edx, dword [ebp]
mov ebx, dword [ebp + 4]
jmp 0x47a907
cmp edx, 0xc
jne 0x47b720
mov ebp, dword [esp + 0xf0]
mov edx, dword [ebp]
xor ebx, ebx
jmp 0x47a907
cmp eax, 8
jne 0x47aa03
mov edx, dword [esp + 0xe4]
movzx eax, byte [edx]
xor ecx, ecx
jmp 0x47a8df
mov edx, dword [esp + 0xe4]
movzx eax, word [edx]
xor ecx, ecx
jmp 0x47a8df
cmp eax, 0xa
jne 0x47aa29
mov edx, dword [esp + 0xe4]
mov eax, dword [edx]
xor ecx, ecx
jmp 0x47a8df
cmp eax, 0xb
jne 0x47aa3f
mov edx, dword [esp + 0xe4]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
jmp 0x47a8df
mov edx, dword [esp + 0xe4]
mov eax, dword [edx]
xor ecx, ecx
jmp 0x47a8df
lea ecx, [eax - 0xd]
cmp ecx, 1
ja 0x47abdb
cmp eax, 0xd
jne 0x47abb6
mov eax, dword [esp + 0xe4]
fld dword [eax]
fld st(0)
fstp st(1)
fld st(0)
fstp qword [esp + 0x70]
fld qword [esp + 0x70]
fstp st(1)
fld st(0)
fstp qword [esp + 0x98]
fstp st(0)
nop
mov eax, dword [esp + 0xf4]
and eax, 0x1f
cmp eax, 0xd
jne 0x47ab88
mov eax, dword [esp + 0xf0]
fld dword [eax]
fld st(0)
fstp st(1)
fld st(0)
fstp qword [esp + 0x68]
fld qword [esp + 0x68]
fstp st(1)
fld st(0)
fstp qword [esp + 0xa0]
fstp st(0)
fld qword [esp + 0x98]
fld st(0)
fucomp st(1)
mov dword [esp + 0xa8], eax
fnstsw ax
sahf
mov eax, dword [esp + 0xa8]
fstp st(0)
jne 0x47aae2
jnp 0x47aaf5
mov eax, 0xffffffff
mov dword [esp + 0xf8], eax
add esp, 0xdc
ret
fld qword [esp + 0xa0]
fld st(0)
fucomp st(1)
mov dword [esp + 0xa8], eax
fnstsw ax
sahf
mov eax, dword [esp + 0xa8]
fstp st(0)
jne 0x47ab17
jnp 0x47ab1e
mov eax, 1
jmp 0x47aae7
fld qword [esp + 0xa0]
fld qword [esp + 0x98]
fld st(1)
fucomp st(1)
mov dword [esp + 0xa8], eax
fnstsw ax
sahf
mov eax, dword [esp + 0xa8]
fstp st(0)
fstp st(0)
jbe 0x47ab4e
mov eax, 0xffffffff
jmp 0x47aae7
fld qword [esp + 0x98]
fld qword [esp + 0xa0]
fld st(1)
fucomp st(1)
mov dword [esp + 0xa8], eax
fnstsw ax
sahf
mov eax, dword [esp + 0xa8]
fstp st(0)
fstp st(0)
jbe 0x47ab81
mov eax, 1
jmp 0x47aae7
xor eax, eax
jmp 0x47aae7
cmp eax, 0xe
jne 0x47b6e2
mov eax, dword [esp + 0xf0]
fld qword [eax]
fld st(0)
fstp qword [esp + 0x68]
fld qword [esp + 0x68]
fstp st(1)
fld st(0)
fstp qword [esp + 0xa0]
fstp st(0)
jmp 0x47aac0
mov eax, dword [esp + 0xe4]
fld qword [eax]
fld st(0)
fstp qword [esp + 0x70]
fld qword [esp + 0x70]
fstp st(1)
fld st(0)
fstp qword [esp + 0x98]
fstp st(0)
jmp 0x47aa88
cmp eax, 0xf
jb 0x47b794
jne 0x47ae5d
mov eax, dword [esp + 0xe4]
fld dword [eax]
fld st(0)
fstp st(1)
fld st(0)
fstp qword [esp + 0x50]
fld dword [eax + 4]
fld st(0)
fstp st(1)
fld st(0)
fstp qword [esp + 0x60]
fld qword [esp + 0x60]
fstp st(2)
fld st(1)
fstp qword [esp + 0x90]
fld qword [esp + 0x50]
fstp st(1)
fld st(0)
fstp qword [esp + 0x88]
fstp st(0)
fstp st(0)
nop
mov eax, dword [esp + 0xf4]
and eax, 0x1f
cmp eax, 0xf
jne 0x47ae18
mov eax, dword [esp + 0xf0]
fld dword [eax]
fld st(0)
fstp st(1)
fld st(0)
fstp qword [esp + 0x48]
fld dword [eax + 4]
fld st(0)
fstp st(1)
fld st(0)
fstp qword [esp + 0x58]
fld qword [esp + 0x48]
fstp st(2)
fld st(1)
fstp qword [esp + 0x78]
fld qword [esp + 0x58]
fstp st(1)
fld st(0)
fstp qword [esp + 0x80]
fstp st(0)
fstp st(0)
fld qword [esp + 0x88]
fld st(0)
fucomp st(1)
mov dword [esp + 0xa8], eax
fnstsw ax
sahf
mov eax, dword [esp + 0xa8]
fstp st(0)
jne 0x47aca5
jnp 0x47ad88
mov eax, 0xffffffff
test eax, eax
jne 0x47ad7a
fld qword [esp + 0x90]
fld st(0)
fucomp st(1)
mov dword [esp + 0xa8], eax
fnstsw ax
sahf
mov eax, dword [esp + 0xa8]
fstp st(0)
jne 0x47acd4
jnp 0x47ace7
mov eax, 0xffffffff
mov dword [esp + 0xf8], eax
add esp, 0xdc
ret
fld qword [esp + 0x80]
fld st(0)
fucomp st(1)
mov dword [esp + 0xa8], eax
fnstsw ax
sahf
mov eax, dword [esp + 0xa8]
fstp st(0)
jne 0x47ad09
jnp 0x47ad10
mov eax, 1
jmp 0x47acd9
fld qword [esp + 0x80]
fld qword [esp + 0x90]
fld st(1)
fucomp st(1)
mov dword [esp + 0xa8], eax
fnstsw ax
sahf
mov eax, dword [esp + 0xa8]
fstp st(0)
fstp st(0)
jbe 0x47ad40
mov eax, 0xffffffff
jmp 0x47acd9
fld qword [esp + 0x90]
fld qword [esp + 0x80]
fld st(1)
fucomp st(1)
mov dword [esp + 0xa8], eax
fnstsw ax
sahf
mov eax, dword [esp + 0xa8]
fstp st(0)
fstp st(0)
jbe 0x47ad73
mov eax, 1
jmp 0x47acd9
xor eax, eax
jmp 0x47acd9
mov dword [esp + 0xf8], eax
add esp, 0xdc
ret
fld qword [esp + 0x78]
fld st(0)
fucomp st(1)
mov dword [esp + 0xa8], eax
fnstsw ax
sahf
mov eax, dword [esp + 0xa8]
fstp st(0)
jne 0x47ada7
jnp 0x47adb1
mov eax, 1
jmp 0x47acaa
fld qword [esp + 0x78]
fld qword [esp + 0x88]
fld st(1)
fucomp st(1)
mov dword [esp + 0xa8], eax
fnstsw ax
sahf
mov eax, dword [esp + 0xa8]
fstp st(0)
fstp st(0)
jbe 0x47ade1
mov eax, 0xffffffff
jmp 0x47acaa
fld qword [esp + 0x88]
fld qword [esp + 0x78]
fld st(1)
fucomp st(1)
mov dword [esp + 0xa8], eax
fnstsw ax
sahf
mov eax, dword [esp + 0xa8]
fstp st(0)
fstp st(0)
jbe 0x47ae11
mov eax, 1
jmp 0x47acaa
xor eax, eax
jmp 0x47acaa
cmp eax, 0x10
jne 0x47b6a4
mov eax, dword [esp + 0xf0]
fld qword [eax]
fld st(0)
fstp qword [esp + 0x48]
fld qword [eax + 8]
fld st(0)
fstp qword [esp + 0x58]
fld qword [esp + 0x48]
fstp st(2)
fld st(1)
fstp qword [esp + 0x78]
fld qword [esp + 0x58]
fstp st(1)
fld st(0)
fstp qword [esp + 0x80]
fstp st(0)
fstp st(0)
jmp 0x47ac7f
mov eax, dword [esp + 0xe4]
fld qword [eax]
fld st(0)
fstp qword [esp + 0x50]
fld qword [eax + 8]
fld st(0)
fstp qword [esp + 0x60]
fld qword [esp + 0x60]
fstp st(2)
fld st(1)
fstp qword [esp + 0x90]
fld qword [esp + 0x50]
fstp st(1)
fld st(0)
fstp qword [esp + 0x88]
fstp st(0)
fstp st(0)
jmp 0x47ac2c
cmp eax, 0x14
ja 0x47b3e6
cmp eax, 0x11
jne 0x47afca
xor eax, eax
jmp 0x47aec0
mov edx, dword [esp + 0x2c]
lea eax, [edx + 1]
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0xe0]
mov dword [esp], edx
mov ebx, dword [esp + 0xe4]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.00472870
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0xc], eax
jle 0x47afb8
mov ecx, dword [esp + 0xe0]
mov dword [esp], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0xe8]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
call fcn.00472530
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc8], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc4], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x44], edx
mov ebx, dword [esp + 0xec]
mov dword [esp], ebx
mov ebp, dword [esp + 0xf0]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0xf4]
mov dword [esp + 8], esi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0xc], edi
call fcn.00472530
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc8]
mov dword [esp], ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.0047a5c0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x47aeb2
mov dword [esp + 0xf8], eax
add esp, 0xdc
ret
mov dword [esp + 0xf8], 0
add esp, 0xdc
ret
cmp eax, 0x12
je 0x47b2f2
cmp eax, 0x14
jne 0x47b794
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov edx, dword [esp + 0xe4]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov ebx, dword [esp + 0xec]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0xf0]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0xf4]
mov dword [esp + 0x14], esi
call fcn.0047b810
movzx eax, byte [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test al, al
jne 0x47b2e4
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xe4]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xe8]
mov dword [esp + 8], edx
call fcn.004722d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00473780
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x47b2dd
mov edx, dword [eax + 4]
test edx, edx
je 0x47b2d2
nop
movzx ebx, byte [0x538988]
test bl, bl
je 0x47b0ae
mov dword [0x53898c], edx
mov ebx, dword [0x54d830]
test ebx, ebx
jne 0x47b2c0
mov dword [0x538990], ecx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], ecx
mov eax, dword [esp + 0xcc]
test eax, eax
je 0x47b2b5
nop
movzx edx, byte [eax + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x47b0e0
or edx, 0x80
mov dword [esp + 0x24], edx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb0], eax
mov ebx, dword [esp + 0xec]
mov dword [esp], ebx
mov ebp, dword [esp + 0xf0]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0xf4]
mov dword [esp + 8], esi
call fcn.004722d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00473780
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x47b2ae
mov edx, dword [eax + 4]
test edx, edx
je 0x47b2a3
nop
movzx ebx, byte [0x538988]
test bl, bl
je 0x47b174
mov dword [0x53898c], edx
mov ebx, dword [0x54d830]
test ebx, ebx
jne 0x47b291
mov dword [0x538990], ecx
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd8], ecx
mov eax, dword [esp + 0xd4]
test eax, eax
je 0x47b286
nop
movzx edx, byte [eax + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x47b1a6
or edx, 0x80
mov ebx, dword [esp + 0xb0]
mov dword [esp], ebx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.0047a5c0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x47b1ea
mov dword [esp + 0xf8], eax
add esp, 0xdc
ret
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 8], eax
call fcn.004722d0
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc8], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xc4], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x44], edx
mov ebx, dword [esp + 0xec]
mov dword [esp], ebx
mov ebx, dword [esp + 0xf0]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xf4]
mov dword [esp + 8], ebx
call fcn.004722d0
mov eax, dword [esp + 0xc8]
mov dword [esp], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
call fcn.0047a5c0
mov eax, dword [esp + 0x18]
mov dword [esp + 0xf8], eax
add esp, 0xdc
ret
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x47b1a6
lea edi, [0x538990]
mov eax, ecx
call fcn.00455e90
jmp 0x47b174
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x47b1a6
mov edx, eax
jmp 0x47b146
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x47b0e0
lea edi, [0x538990]
mov eax, ecx
call fcn.00455e90
jmp 0x47b0ae
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x47b0e0
mov edx, eax
jmp 0x47b080
mov dword [esp + 0xf8], ecx
add esp, 0xdc
ret
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov edx, dword [esp + 0xe4]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov ebx, dword [esp + 0xec]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0xf0]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0xf4]
mov dword [esp + 0x14], esi
call fcn.0047b810
movzx eax, byte [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test al, al
jne 0x47b3d8
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 8], eax
call fcn.00472f80
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov ecx, dword [esp + 0xf0]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xf4]
mov dword [esp + 8], ecx
call fcn.00472f80
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x34]
cmp ecx, eax
jb 0x47b3c6
jbe 0x47b3b4
mov dword [esp + 0xf8], 1
add esp, 0xdc
ret
mov dword [esp + 0xf8], 0
add esp, 0xdc
ret
mov dword [esp + 0xf8], 0xffffffff
add esp, 0xdc
ret
mov dword [esp + 0xf8], ecx
add esp, 0xdc
ret
cmp eax, 0x16
je 0x47b615
cmp eax, 0x18
je 0x47b51d
cmp eax, 0x19
jne 0x47b794
xor eax, eax
jmp 0x47b413
mov edx, dword [esp + 0x28]
lea eax, [edx + 1]
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0xe0]
mov dword [esp], edx
mov ebx, dword [esp + 0xe4]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.00472ed0
mov eax, dword [esp + 0x28]
cmp dword [esp + 0xc], eax
jle 0x47b50b
mov ecx, dword [esp + 0xe0]
mov dword [esp], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0xe8]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
call fcn.00472430
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc8], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc4], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x44], edx
mov ebx, dword [esp + 0xec]
mov dword [esp], ebx
mov ebp, dword [esp + 0xf0]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0xf4]
mov dword [esp + 8], esi
mov edi, dword [esp + 0x28]
mov dword [esp + 0xc], edi
call fcn.00472430
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc8]
mov dword [esp], ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.0047a5c0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x47b405
mov dword [esp + 0xf8], eax
add esp, 0xdc
ret
mov dword [esp + 0xf8], 0
add esp, 0xdc
ret
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00473690
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0xec]
mov dword [esp], edx
mov edx, dword [esp + 0xf0]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xf4]
mov dword [esp + 8], edx
call fcn.00473690
mov eax, dword [esp + 0xc]
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0xc0]
mov dword [esp], edx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.00402280
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x47b603
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
call fcn.00402280
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x47b5f1
mov dword [esp + 0xf8], 1
add esp, 0xdc
ret
mov dword [esp + 0xf8], 0
add esp, 0xdc
ret
mov dword [esp + 0xf8], 0xffffffff
add esp, 0xdc
ret
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00472f80
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov ecx, dword [esp + 0xf0]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xf4]
mov dword [esp + 8], ecx
call fcn.00472f80
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
cmp ecx, eax
jb 0x47b692
jbe 0x47b680
mov dword [esp + 0xf8], 1
add esp, 0xdc
ret
mov dword [esp + 0xf8], 0
add esp, 0xdc
ret
mov dword [esp + 0xf8], 0xffffffff
add esp, 0xdc
ret
mov dword [esp + 0x44], eax
lea eax, [0x49fde0]
mov dword [esp], eax
call fcn.0040ab00
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x15
lea ecx, [0x4b0002]
mov dword [eax], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax + 8], ecx
lea ecx, [0x49d540]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0042e280
mov dword [esp + 0x44], eax
lea eax, [0x49fde0]
mov dword [esp], eax
call fcn.0040ab00
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x13
lea ecx, [0x4af725]
mov dword [eax], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax + 8], ecx
lea ecx, [0x49d540]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0042e280
lea eax, [0x49fde0]
mov dword [esp], eax
call fcn.0040ab00
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x4af1fd]
mov dword [eax], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax + 8], ecx
lea ecx, [0x49d540]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0042e280
lea eax, [0x49fde0]
mov dword [esp], eax
call fcn.0040ab00
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x11
lea ecx, [0x4aedc9]
mov dword [eax], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax + 8], ecx
lea ecx, [0x49d540]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0042e280
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x80]
mov ecx, dword [esp + 0xbc]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x4aff1b]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x15
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.00442120
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004084d0
mov eax, dword [esp + 8]
lea ecx, [0x49c220]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0042e280
nop
call fcn.00454940
jmp fcn.0047a5c0