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

Disassembly:
sub esp, 0xbd8
push ebx
push ebp
mov ebp, ecx
mov eax, dword [ebp + 0x18]
push esi
mov esi, dword [eax + 0x5c]
mov eax, dword [ebp + 0x48]
test eax, eax
lea ebx, [ebp + 0x48]
mov dword [esp + 0x60], esi
je 0x47d238
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x47d238
mov ecx, ebp
call fcn.00477250
test eax, eax
je 0x47d238
mov ecx, ebp
call fcn.00474a60
mov eax, dword [ebp + 0x44]
test eax, eax
jne 0x47e3bf
cmp dword [ebx], 0
jne 0x47e3bf
cmp word [esi + 0x2a], 0
jne 0x47e3bf
mov ecx, dword [ebp + 4]
mov ecx, dword [ecx + 0x14]
test ecx, ecx
je 0x47d26e
call fcn.00423750
test al, al
jne 0x47e3bf
mov eax, dword [ebp + 0x20]
test eax, eax
push edi
mov edi, dword [esp + 0xbec]
je 0x47d28a
mov ecx, dword [eax + 0x2c]
call fcn.00484e10
cmp eax, 8
jl 0x47d2f2
push edi
call fcn.00436b80
fld qword [0x53a690]
fucompp
add esp, 4
fnstsw ax
test ah, 0x44
jp 0x47d2be
push edi
call fcn.00436ba0
fld qword [0x53a690]
fucompp
add esp, 4
fnstsw ax
test ah, 0x44
jnp case.0x47d309.1
push edi
call fcn.00436bc0
fld qword [0x53a690]
fucompp
add esp, 4
fnstsw ax
test ah, 0x44
jp 0x47d2f2
push edi
call fcn.00436be0
fld qword [0x53a690]
fucompp
add esp, 4
fnstsw ax
test ah, 0x44
jnp case.0x47d309.1
mov ecx, dword [ebp + 0x18]
movzx eax, byte [ecx + 0x6e]
cmp eax, 0x62
ja case.0x47d309.1
movzx edx, byte [eax + 0x47e3ec]
jmp dword [edx*4 + 0x47e3cc]
mov eax, dword [ecx + 0x64]
push edi
push 0
push eax
push esi
lea ecx, [esp + 0x138]
call fcn.0041f540
mov ecx, dword [ebp + 0x18]
mov al, byte [ecx + 0x6f]
cmp al, 0x20
je 0x47d345
cmp al, 0x43
je 0x47d345
cmp al, 0x50
je 0x47d345
cmp al, 0x53
mov dword [esp + 0xbb0], 0
jne 0x47d350
mov dword [esp + 0xbb0], 1
mov cl, byte [ecx + 0x6f]
cmp cl, 0x50
je 0x47d361
cmp cl, 0x53
je 0x47d361
xor eax, eax
jmp 0x47d366
mov eax, 2
cmp cl, 0x43
sete cl
or cl, al
add edi, 0x1c
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov byte [esp + 0xbb4], cl
mov ecx, dword [edi + 8]
mov dword [esp + 0x178], edx
mov edx, dword [edi + 0xc]
mov dword [esp + 0x184], edx
mov edx, dword [esp + 0xbf4]
mov dword [esp + 0x180], ecx
mov ecx, dword [esp + 0xbf0]
mov dword [esp + 0xbe4], ebp
push edx
add ebp, 0x70
mov dword [esp + 0x180], eax
mov eax, dword [edi + 0x10]
push ebp
mov dword [esp + 0xbc0], ecx
push 1
lea ecx, [esp + 0x134]
mov dword [esp + 0x194], eax
call fcn.004774b0
lea ecx, [esp + 0x128]
call fcn.00482870
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbd8
ret 0xc
mov ecx, dword [esp + 0x64]
xor edi, edi
mov esi, 0x7fffffff
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0x54], esi
call fcn.00484e10
mov ecx, eax
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x64]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x34], edx
xor ecx, ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x54], esi
mov dword [esp + 0x48], 0x20000000
cmp byte [eax + 0x6f], 0x21
sete cl
lea edx, [esp + 0x10c]
push edx
mov dword [esp + 0xd4], ecx
lea ecx, [esp + 0x38]
call fcn.00483690
lea eax, [esp + 0xac]
mov ecx, 7
lea esi, [esp + 0x10c]
lea edi, [esp + 0xac]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xbec]
push eax
push ecx
mov edx, eax
push edx
call fcn.00437330
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov dl, byte [eax + ecx]
add esp, 0xc
inc eax
mov dword [esp + 0x38], eax
mov cl, byte [eax + ecx]
inc eax
mov dword [esp + 0x38], eax
movzx eax, cl
mov ecx, dword [ebp + 4]
cmp word [ecx + 0x52], 0
movzx edx, dl
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], eax
mov dword [esp + 0x5c], 0
je 0x47d4e0
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 4]
push ebx
push eax
call fcn.00474180
add esp, 8
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0x24]
xor esi, esi
mov dword [esp + 0x58], esi
mov eax, dword [eax + 4]
cmp eax, esi
mov dword [esp + 0x20], esi
je 0x47d4fc
mov eax, dword [eax + 0x3b0]
jmp 0x47d4fe
xor eax, eax
push eax
lea ecx, [esp + 0x94]
push ecx
call fcn.00437740
mov edx, dword [ebp + 4]
mov eax, dword [edx + 0x18]
xor edi, edi
add esp, 8
cmp eax, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x30], esi
je 0x47d55e
cmp dword [eax + 0xc], esi
jbe 0x47d55e
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 4]
cmp dword [edx + 0xfc], esi
jne 0x47d55e
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x58]
push ecx
push esi
push eax
mov ecx, ebp
mov dword [esp + 0x74], edx
call fcn.004783a0
mov dword [esp + 0x7c], eax
xor ebx, ebx
push ebp
mov dword [esp + 0x64], 0x400
mov dword [esp + 0x2c], 0x44800000
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x78], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x7c], esi
call fcn.0045f200
add esp, 4
test al, al
je 0x47d5b3
mov edx, dword [ebp + 0x18]
mov ecx, dword [edx + 0x5c]
call fcn.00484e10
cmp eax, 5
jle 0x47d5b3
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 4]
cmp dword [ecx + 0xfc], esi
jne 0x47d5b3
mov al, 1
jmp 0x47d5b5
xor al, al
mov edx, dword [ebp + 4]
cmp word [edx + 0x52], si
jne 0x47d6d0
test al, al
je 0x47d6d0
mov eax, ebp
mov edx, 0x200
mov ecx, dword [eax + 4]
cmp dword [ecx + 4], esi
je 0x47d5e2
test dword [eax + 0x4c], edx
jne 0x47d6d0
cmp word [ecx + 0x52], si
jne 0x47d6d0
mov eax, dword [eax + 8]
cmp eax, esi
jne 0x47d5d1
mov eax, dword [esp + 0xc4]
cmp eax, 1
jne 0x47d62b
fld dword [esp + 0xb4]
push ecx
fadd dword [esp + 0xb4]
fstp dword [esp]
call fcn.00474160
fcomp qword [0x53b048]
add esp, 4
fnstsw ax
test ah, 5
jnp 0x47d654
jmp 0x47d6d0
cmp eax, esi
jne 0x47d6d0
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
add eax, ecx
cmp eax, esi
jge 0x47d649
neg eax
cmp eax, 0x100
jge 0x47d6d0
push 0x88
call fcn.00439320
mov esi, eax
add esp, 4
test esi, esi
je 0x47d6a8
mov edx, dword [ebp + 4]
mov eax, dword [edx + 0x14]
mov ecx, dword [esp + 0xbec]
push ecx
lea edx, [esp + 0x110]
push edx
mov edx, dword [ebp + 0x18]
lea ecx, [esp + 0xb4]
push ecx
push eax
mov eax, dword [edx + 0x5c]
mov ecx, dword [eax + 0xb4]
push ebp
push ecx
call fcn.0045e8c0
add esp, 4
push eax
mov ecx, esi
call fcn.0045e4f0
mov ebx, eax
jmp 0x47d6aa
xor ebx, ebx
mov eax, dword [esp + 0xbec]
mov cl, byte [eax + 0x30]
test cl, cl
seta cl
lea edx, [esp + 0x58]
push edx
mov dword [esp + 0x20], ebx
push ecx
push 0
push 0
mov ecx, ebx
call fcn.0045f030
xor esi, esi
cmp dword [esp + 0x20], esi
jne 0x47d98e
lea ecx, [esp + 0x34]
call fcn.004826d0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov al, byte [ecx + edx]
movzx ebx, al
inc ecx
test ebx, ebx
mov dword [esp + 0x38], ecx
je 0x47dc54
mov esi, ebx
and esi, 8
je 0x47d751
mov eax, edx
add eax, ecx
add ecx, 2
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
push ecx
mov ecx, dword [esp + 0x68]
call fcn.00482a70
mov edi, eax
test edi, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x60], 0x400
mov dword [esp + 0x28], 0x44800000
je 0x47d751
cmp byte [edi + 0x6f], 0x4b
jne 0x47d751
mov dword [esp + 0x60], 0x5000
mov dword [esp + 0x28], 0x46a00000
mov eax, ebx
and eax, 4
jne 0x47d76c
mov edx, dword [ebp + 0x24]
mov ecx, dword [edx + 4]
mov edx, dword [ecx + 0xfc]
test edx, edx
je 0x47d83c
test eax, eax
je 0x47d80a
mov edx, dword [esp + 0xd0]
push edx
lea eax, [esp + 0xe0]
push eax
lea ecx, [esp + 0x3c]
call fcn.00482460
mov ecx, dword [esp + 0x1c]
test ecx, ecx
mov eax, dword [eax]
mov dword [esp + 0xd4], eax
je 0x47d80a
mov ecx, dword [esp + 0xbec]
mov edx, dword [ecx + 0x1c]
add ecx, 0x1c
test edx, edx
mov dword [esp + 0x14], eax
je 0x47d7c7
push eax
lea edx, [esp + 0xdc]
push edx
call fcn.00458a90
mov eax, dword [eax]
mov dword [esp + 0x14], eax
mov al, byte [esp + 0x17]
cmp al, 0xff
je 0x47d80a
movzx ecx, byte [esp + 0x14]
movzx eax, al
inc eax
imul ecx, eax
sar ecx, 8
mov byte [esp + 0x14], cl
mov edx, dword [esp + 0x14]
shr edx, 8
movzx edx, dl
imul edx, eax
sar edx, 8
mov byte [esp + 0x15], dl
mov ecx, dword [esp + 0x14]
shr ecx, 0x10
movzx ecx, cl
imul ecx, eax
sar ecx, 8
mov byte [esp + 0x16], cl
mov edx, dword [ebp + 4]
cmp word [edx + 0x52], 0
jne 0x47d83c
mov ecx, dword [esp + 0xbec]
lea eax, [esp + 0x58]
push eax
push ecx
lea edx, [esp + 0xdc]
push edx
mov ecx, ebp
call fcn.004783a0
test eax, eax
mov dword [esp + 0x5c], eax
je case.0x47d309.1
test bl, 1
je 0x47d866
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
add eax, ecx
add ecx, 2
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
movzx eax, byte [eax]
movsx edx, cx
or edx, eax
mov dword [esp + 0xa0], edx
test bl, 2
je 0x47d891
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
lea eax, [ecx + edx]
add ecx, 2
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
movzx eax, byte [eax]
movsx edx, cx
or edx, eax
mov dword [esp + 0xa4], edx
test esi, esi
je 0x47d962
mov ecx, dword [ebp + 0x24]
mov eax, dword [ecx + 4]
test eax, eax
je 0x47d91a
mov eax, dword [eax + 0x3b0]
test eax, eax
je 0x47d91a
mov ecx, eax
call fcn.00495e00
test al, al
je 0x47d91a
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
lea eax, [ecx + edx]
add ecx, 2
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
mov dword [esp + 0xa8], 1
movzx edx, cx
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
fld dword [0x53a788]
fdiv dword [esp + 0x28]
fmulp st(1)
fstp dword [esp + 0x9c]
mov eax, dword [esp + 0x9c]
fld dword [esp + 0x9c]
mov dword [esp + 0x90], eax
fmul dword [esp + 0x28]
call fcn.004ab830
jmp 0x47d95e
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x60]
lea eax, [ecx + edx]
add ecx, 2
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
mov eax, 0x10000
cdq
idiv esi
mov dword [esp + 0xa8], 0
imul eax, ecx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x90], eax
imul eax, esi
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov al, byte [ecx + edx]
inc ecx
movzx eax, al
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x20], eax
call fcn.004826c0
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
xor esi, esi
cmp eax, esi
jle 0x47dc58
mov ecx, dword [esp + 0xc8]
push ecx
lea ecx, [esp + 0x38]
call fcn.00482700
mov edx, dword [esp + 0xcc]
push edx
lea ecx, [esp + 0x38]
mov esi, eax
call fcn.00482780
test edi, edi
mov dword [esp + 0x2c], eax
je 0x47dc32
mov ax, word [edi + 0x2e]
test ax, ax
je 0x47d9e1
movzx eax, ax
cmp esi, eax
jl 0x47d9e1
mov dword [esp + 0x2c], 0
jmp 0x47dc32
lea ecx, [esp + 0xf0]
push ecx
lea edx, [esp + 0xb0]
push edx
lea eax, [esp + 0x98]
push eax
call fcn.00437330
mov eax, dword [esp + 0x3c]
add esp, 0xc
test eax, eax
jbe 0x47da73
mov ecx, dword [esp + 0x68]
dec eax
mov dword [esp + 0x30], eax
mov al, byte [ecx]
inc ecx
test al, al
mov dword [esp + 0x68], ecx
je 0x47da73
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0xe0]
push ecx
push edx
push esi
push edi
mov ecx, ebp
call fcn.00474260
test al, al
je 0x47da73
lea eax, [esp + 0xe0]
push eax
push 0xffffffffffffffe0
call fcn.00438420
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 4]
push 0
lea eax, [ebp + 0x44]
push eax
mov eax, dword [esp + 0x8c]
push edx
push eax
lea ecx, [esp + 0x108]
push ecx
lea edx, [esp + 0xfc]
push edx
call fcn.004764f0
add esp, 0x20
test ebx, ebx
je 0x47db72
fild dword [esp + 0x18]
fmul dword [ebx + 0x50]
fcomp dword [0x53e2f0]
fnstsw ax
test ah, 0x41
jp 0x47db72
cmp dword [esp + 0x6c], edi
je 0x47db1a
test byte [edi + 0x30], 8
mov ebx, dword [esp + 0x24]
je 0x47dacf
movzx eax, word [ebx + 0x2e]
mov ecx, dword [ebx + 0x64]
xor edx, edx
mov dh, byte [ecx + eax*4 + 3]
lea eax, [ecx + eax*4]
movzx ecx, byte [eax + 1]
mov dl, byte [eax + 2]
movzx eax, byte [eax]
shl edx, 8
or edx, ecx
shl edx, 8
or edx, eax
mov edi, edx
jmp 0x47dae6
mov eax, dword [esp + 0x24]
movzx ecx, word [eax + 0x2e]
mov edx, dword [eax + 0x64]
lea eax, [edx + ecx*2]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
mov edi, ecx
mov edx, dword [ebp + 0x18]
mov eax, dword [edx + 0x5c]
mov ecx, dword [eax + 0xb4]
push ecx
call fcn.0045e8c0
push ebx
call fcn.0045e000
mov dword [esp + 0x74], ebx
mov ebx, dword [ebx + 0x64]
add esp, 8
add ebx, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
push 0
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x80]
push edx
mov dword [esp + 0x90], eax
xor edx, edx
mov dx, word [ecx + esi*2]
mov ecx, dword [esp + 0x78]
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x84]
push esi
push edx
push eax
push ecx
mov ecx, ebx
call fcn.0045fc00
jmp 0x47dc32
mov al, byte [edi + 0x30]
xor ecx, ecx
test al, 8
mov eax, dword [edi + 0x64]
je 0x47db9b
mov ch, byte [eax + esi*4 + 3]
movzx edx, byte [eax + esi*4 + 1]
mov cl, byte [eax + esi*4 + 2]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + esi*4]
shl ecx, 8
or ecx, edx
jmp 0x47dba2
mov ch, byte [eax + esi*2 + 1]
mov cl, byte [eax + esi*2]
lea edx, [esp + 0xf0]
push edx
push ecx
push eax
mov eax, dword [esp + 0x70]
push eax
lea ecx, [esp + 0x138]
call fcn.0041f540
mov ecx, dword [esp + 0x1a0]
mov eax, 1
mov dword [esp + 0xbe0], eax
mov dword [esp + 0xbe4], ebp
mov dword [ecx], 0
mov edx, dword [esp + 0x1a4]
mov dword [edx], 0
mov ecx, dword [esp + 0x1a4]
mov word [ecx + 4], 0
mov edx, dword [esp + 0x1a0]
mov ecx, dword [esp + 0x5c]
mov dword [edx + 4], ecx
mov edx, dword [esp + 0xbf4]
mov dword [esp + 0x19c], eax
push edx
lea eax, [ebp + 0x70]
push eax
push 0
lea ecx, [esp + 0x134]
call fcn.004774b0
lea ecx, [esp + 0x128]
call fcn.00482870
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
add edx, ecx
dec eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0x20], eax
jmp 0x47d6ce
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x47dc64
mov edx, dword [ebx]
push 1
mov ecx, ebx
call dword [edx]
lea ecx, [esp + 0x34]
call fcn.004826d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbd8
ret 0xc
mov eax, dword [ecx + 0x64]
push edi
push 0
push eax
push esi
lea ecx, [esp + 0x138]
call fcn.0041f540
mov ecx, dword [ebp + 0x18]
mov al, byte [ecx + 0x6f]
cmp al, 0x2e
je 0x47dcaf
cmp al, 0x44
je 0x47dcaf
cmp al, 0x51
je 0x47dcaf
cmp al, 0x54
mov dword [esp + 0xbb0], 0
jne 0x47dcba
mov dword [esp + 0xbb0], 1
mov cl, byte [ecx + 0x6f]
cmp cl, 0x51
je 0x47dccb
cmp cl, 0x54
je 0x47dccb
xor eax, eax
jmp 0x47dcd0
mov eax, 2
cmp cl, 0x44
sete cl
or cl, al
add edi, 0x1c
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov byte [esp + 0xbb4], cl
mov ecx, dword [edi + 8]
mov dword [esp + 0x178], edx
mov edx, dword [edi + 0xc]
mov dword [esp + 0x17c], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x180], ecx
mov ecx, dword [ebp + 4]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0xbf0]
mov dword [esp + 0x184], edx
movzx edx, word [ecx + 0x56]
mov dword [esp + 0xbe4], ebp
add ebp, 0x70
push ebp
lea ecx, [esp + 0x12c]
mov dword [esp + 0x190], edx
mov dword [esp + 0xbbc], eax
call fcn.00477aa0
lea ecx, [esp + 0x128]
call fcn.00482870
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbd8
ret 0xc
mov esi, dword [esp + 0xbec]
mov edx, dword [ebp + 4]
lea ecx, [esi + 0x1c]
push ecx
mov ecx, dword [edx + 0x14]
call fcn.00474130
mov eax, dword [ebp + 4]
mov edi, dword [eax + 0x14]
add esi, 0x30
add edi, 0x358
mov ecx, 0x2b
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 4]
mov eax, dword [ecx + 0x14]
push eax
call fcn.004cd920
add esp, 4
test al, al
je case.0x47d309.1
mov edx, dword [ebp + 4]
mov ecx, dword [edx + 0x14]
push 0
push 0
push 0
call fcn.0042b0d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbd8
ret 0xc
cmp dword [ebx], 0
jne case.0x47d309.1
mov esi, dword [ebp + 4]
mov eax, dword [esi + 8]
test eax, eax
je case.0x47d309.1
mov al, byte [ecx + 0xc]
cmp al, 2
jb 0x47df01
cmp al, 5
ja 0x47df01
mov eax, dword [esi + 0x4c]
test eax, eax
je 0x47df01
mov ax, word [ecx + 0xa]
cmp ax, 0xffff
jne 0x47de05
movzx eax, word [esi + 0x56]
jmp 0x47de08
movzx eax, ax
movzx edi, word [ecx + 8]
cdq
idiv edi
mov ebx, edx
test ebx, ebx
mov dword [esp + 0x18], ebx
jl 0x47df01
mov eax, dword [ecx]
lea eax, [eax + ebx*4]
cmp dword [eax], 0
jne 0x47de38
dec ebx
sub eax, 4
test ebx, ebx
jge 0x47de22
mov dword [esp + 0x18], ebx
jmp 0x47df01
test ebx, ebx
mov dword [esp + 0x18], ebx
jl 0x47df01
movzx ecx, word [esi + 0x50]
cmp ebx, ecx
je 0x47df01
mov esi, ebx
mov ecx, dword [ebp + 4]
movzx eax, word [ecx + 0x50]
lea edi, [esi - 1]
cmp eax, edi
jl 0x47de64
cmp ebx, eax
jg 0x47de95
mov eax, dword [ebp + 0x18]
mov edx, dword [eax]
mov edx, dword [edx + esi*4]
test edx, edx
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
je 0x47de8d
test eax, eax
je 0x47de8d
mov ecx, dword [ecx + 0x4c]
mov ebx, dword [ecx]
push eax
push edx
push ebp
call dword [ebx + 0x10]
test al, al
mov ebx, dword [esp + 0x18]
jne 0x47dec8
mov esi, edi
test esi, esi
jge 0x47de52
jmp 0x47df01
mov ecx, dword [ebp + 4]
movzx esi, word [ecx + 0x50]
mov eax, dword [ebp + 0x18]
movzx ecx, word [eax + 8]
inc esi
cmp esi, ecx
jge 0x47dec6
mov edx, dword [eax]
lea eax, [edx + esi*4]
lea ecx, [ecx]
cmp dword [eax], 0
jne 0x47dec4
mov edx, dword [ebp + 0x18]
movzx edx, word [edx + 8]
inc esi
add eax, 4
cmp esi, edx
jl 0x47deb0
cmp esi, ecx
je 0x47df01
test esi, esi
jl 0x47df01
cmp esi, ebx
jg 0x47def9
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + esi*4]
test edx, edx
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
je 0x47def4
test eax, eax
je 0x47def4
mov ecx, dword [ebp + 4]
mov ecx, dword [ecx + 0x4c]
mov edi, dword [ecx]
push eax
push edx
push ebp
call dword [edi + 0xc]
inc esi
cmp esi, ebx
jle 0x47ded0
push ebx
mov ecx, ebp
call fcn.0047c360
mov edx, dword [ebp + 4]
mov esi, dword [edx + 8]
mov ecx, esi
call fcn.0040c230
test eax, eax
mov ecx, 6
jne 0x47df20
cmp dword [esi + 0xc], ecx
jne case.0x47d309.1
cmp dword [esi + 0xc], ecx
jne 0x47df2f
cmp byte [esi + 0x28], 1
je case.0x47d309.1
push 0x3c
call fcn.00439320
mov esi, eax
add esp, 4
test esi, esi
je case.0x47d309.1
mov ecx, ebp
call fcn.00477250
push eax
mov ecx, esi
call fcn.00451870
mov ebx, eax
xor esi, esi
cmp ebx, esi
je case.0x47d309.1
mov eax, dword [ebp + 4]
mov dword [ebp + 0x48], ebx
cmp word [eax + 0x52], si
mov ecx, ebx
je 0x47df78
push 5
call fcn.00451960
jmp 0x47e0b3
push 1
call fcn.00451960
mov eax, dword [ebp + 4]
mov dword [esp + 0x88], esi
mov dword [esp + 0x80], esi
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x84], edx
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x8c], ecx
push 1
mov ecx, ebx
call fcn.00451960
mov edx, dword [ebp + 0x24]
mov eax, dword [edx + 4]
cmp eax, esi
je 0x47dfc5
mov eax, dword [eax + 0x3b0]
jmp 0x47dfc7
xor eax, eax
mov ecx, dword [ebp + 0x18]
push eax
mov eax, dword [ebx + 0x38]
add eax, 8
push eax
add ecx, 0x44
push ecx
lea edx, [esp + 0x8c]
push edx
call fcn.00437ac0
mov esi, dword [ebx + 0x38]
add esi, 8
mov ecx, 7
lea edi, [esp + 0x100]
rep movsd dword es:[edi], dword [esi]
add esp, 0x10
mov ecx, ebp
call fcn.00477250
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x3b0]
mov edx, dword [ebx + 0x38]
mov eax, dword [eax]
push ecx
mov ecx, dword [esp + 0xbf0]
add edx, 0x24
push edx
push eax
lea eax, [esp + 0xfc]
push eax
push ecx
call fcn.00474430
mov edx, dword [ebp + 4]
mov ecx, dword [edx + 8]
mov eax, dword [ebx + 0x38]
mov dword [eax + 4], ecx
mov edx, dword [ebx + 0x38]
mov word [edx], 0x41
mov eax, dword [ebp + 0x18]
mov cl, byte [eax + 0xd]
add esp, 0x14
test cl, 1
jne 0x47e055
mov eax, dword [ebx + 0x38]
or byte [eax], 2
mov edx, dword [ebx + 0x38]
mov ecx, dword [esp + 0xbec]
add ecx, 0x1c
add edx, 0x40
mov eax, ecx
mov esi, dword [eax]
mov dword [edx], esi
mov esi, dword [eax + 4]
mov dword [edx + 4], esi
mov esi, dword [eax + 8]
mov dword [edx + 8], esi
mov esi, dword [eax + 0xc]
mov dword [edx + 0xc], esi
mov eax, dword [eax + 0x10]
mov dword [edx + 0x10], eax
call fcn.0043d3b0
mov ecx, dword [ebp + 4]
mov edx, dword [ecx + 8]
or al, byte [edx + 0x20]
mov byte [ebx + 0x24], al
mov eax, dword [ebx + 0x38]
cmp dword [eax + 0x3c], 1
jne 0x47e0a9
add eax, 0x24
push eax
call fcn.00436d00
add esp, 4
mov eax, dword [ebx + 0x38]
mov dword [eax + 0x3c], 2
mov ecx, ebx
call fcn.0045c400
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp + 0x18]
push 0
lea eax, [ebp + 0x44]
push eax
mov eax, dword [esp + 0xbf4]
push edx
push ebx
push eax
add ecx, 0x44
push ecx
call fcn.004764f0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbd8
ret 0xc
mov edx, dword [ecx]
mov eax, dword [edx]
test eax, eax
je case.0x47d309.1
mov ecx, dword [eax + 4]
test ecx, ecx
je case.0x47d309.1
push 0x3c
call fcn.00439320
mov esi, eax
add esp, 4
test esi, esi
je case.0x47d309.1
mov ecx, ebp
call fcn.00477250
push eax
mov ecx, esi
call fcn.00451870
mov esi, eax
test esi, esi
je case.0x47d309.1
mov eax, dword [ebp + 4]
mov dword [ebx], esi
cmp word [eax + 0x52], 0
mov ecx, esi
je 0x47e14a
push 5
call fcn.00451960
jmp 0x47e367
push 1
call fcn.00451960
mov ecx, ebp
call fcn.00477250
mov edi, dword [eax]
mov ebx, dword [esp + 0xbec]
push ebx
mov dword [esp + 0x74], edi
call fcn.00437c40
add esp, 4
test eax, eax
je 0x47e1e1
fild dword [esp + 0x70]
sub esp, 0x10
fmul qword [0x53ad30]
fstp qword [esp + 0x90]
fld qword [0x53d7b0]
fstp qword [esp + 8]
fld qword [esp + 0x90]
fstp qword [esp]
push ebx
call fcn.00436b80
push ecx
fstp qword [esp]
call fcn.00436280
add esp, 0x18
test eax, eax
je 0x47e1e1
fld qword [0x53d7b0]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [esp + 0x90]
fstp qword [esp]
push ebx
call fcn.00436be0
push ecx
fstp qword [esp]
call fcn.00436280
add esp, 0x18
test eax, eax
je 0x47e1e1
mov cl, 1
jmp 0x47e1e3
xor cl, cl
cmp edi, 1
mov byte [esp + 0x13], cl
jle 0x47e226
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
mov eax, dword [eax + 0x44]
dec eax
je 0x47e202
dec eax
jne 0x47e226
test cl, cl
je 0x47e2c2
mov eax, edi
cdq
sub eax, edx
mov edx, dword [ebx + 0x10]
sar eax, 1
add edx, eax
lea ecx, [edi - 1]
not ecx
and edx, ecx
mov dword [ebx + 0x10], edx
mov edx, dword [ebx + 0x14]
add edx, eax
and edx, ecx
mov cl, byte [esp + 0x13]
mov dword [ebx + 0x14], edx
test cl, cl
je 0x47e2c2
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 4]
test eax, eax
je 0x47e240
mov eax, dword [eax + 0x3b0]
jmp 0x47e242
xor eax, eax
push eax
lea ecx, [esp + 0xb0]
push ecx
call fcn.00437740
mov eax, dword [ebx + 0x10]
cdq
idiv edi
add esp, 8
shl eax, 0x10
mov dword [esp + 0xbc], eax
mov eax, dword [ebx + 0x14]
cdq
idiv edi
mov edx, dword [ebp + 0x24]
shl eax, 0x10
mov dword [esp + 0xc0], eax
mov eax, dword [edx + 4]
test eax, eax
je 0x47e285
mov eax, dword [eax + 0x3b0]
jmp 0x47e287
xor eax, eax
push eax
mov eax, dword [esi + 0x38]
add eax, 0x24
push eax
lea ecx, [esp + 0xb4]
push ecx
call fcn.00438640
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + 0x3c]
add esp, 0xc
cmp ecx, 1
jne 0x47e2b6
add eax, 0x24
push eax
call fcn.00436d00
add esp, 4
mov edx, dword [esi + 0x38]
mov dword [edx + 0x3c], 2
jmp 0x47e2ff
lea eax, [esp + 0xac]
push eax
push 0x140000
push 0x140000
call fcn.00437880
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 0x3b0]
mov ecx, dword [esi + 0x38]
push eax
add ecx, 0x24
push ecx
push edi
lea edx, [esp + 0xc4]
push edx
push ebx
call fcn.00474430
add esp, 0x20
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov edx, dword [esi + 0x38]
add ecx, 0x18
mov dword [edx + 4], ecx
mov eax, dword [esi + 0x38]
mov word [eax], 0x41
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx]
mov al, byte [edx + 0x48]
test al, al
jne 0x47e327
mov eax, dword [esi + 0x38]
or byte [eax], 2
mov eax, dword [esi + 0x38]
lea ecx, [ebx + 0x1c]
add eax, 0x40
mov edx, ecx
mov edi, dword [edx]
mov dword [eax], edi
mov edi, dword [edx + 4]
mov dword [eax + 4], edi
mov edi, dword [edx + 8]
mov dword [eax + 8], edi
mov edi, dword [edx + 0xc]
mov dword [eax + 0xc], edi
mov edx, dword [edx + 0x10]
mov dword [eax + 0x10], edx
call fcn.0043d3b0
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx]
mov cl, byte [edx + 0x38]
mov edi, dword [esp + 0xbec]
or al, cl
mov byte [esi + 0x24], al
mov ecx, esi
call fcn.0045c400
mov edx, dword [ebp + 0x18]
push 0
lea eax, [ebp + 0x44]
push eax
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax + 4]
push ecx
push esi
add edx, 0x44
push edi
push edx
call fcn.004764f0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbd8
ret 0xc
mov eax, dword [ebp + 4]
mov ecx, dword [eax + 0x24]
test ecx, ecx
je case.0x47d309.1
mov esi, dword [esp + 0xbf4]
mov edx, dword [esp + 0xbf0]
test esi, esi
setne al
push edx
push eax
push edi
call fcn.0047afd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbd8
ret 0xc