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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push esi
call fcn.00429a60
xor eax, eax
add esp, 4
mov al, byte [esi + 0x1b]
cmp eax, 3
ja case.default.0x429b36
jmp dword [eax*4 + 0x42b8bc]
mov al, byte [esi + 0x400]
xor ecx, ecx
test al, al
je 0x429cc7
jbe 0x429dfb
cmp al, 2
ja 0x429dfb
lea eax, [esi + 0x1c]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, 0x494f58
sub eax, esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x3c], eax
mov eax, 0x2c4
sub eax, esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x54], eax
mov eax, 0x308
sub eax, esi
mov dword [esp + 0x40], 0x495048
lea ebx, [esi + 0x404]
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov cl, byte [edx + 0x494f30]
mov edx, dword [esp + 0xc]
add edx, ecx
cmp word [eax], 0xffff
mov dword [esp + 0xc], edx
je 0x429c95
call fcn.00407b00
mov dword [ebx], eax
call fcn.00423150
mov ecx, dword [esp + 0x54]
mov dword [ebx + 0x44], eax
lea edx, [ecx + ebx]
mov ecx, dword [0x652130]
mov edx, dword [edx + ecx]
mov dword [esp + 0x14], edx
mov dl, byte [esi + 0x400]
cmp dl, 1
jne 0x429c34
mov edx, dword [esp + 0x1c]
xor ecx, ecx
push 0
push 0
mov cl, byte [edx]
mov edx, ecx
and ecx, 0xf
shr edx, 4
lea edx, [edx + edx*8]
add edx, ecx
mov ecx, dword [0x652130]
push ecx
mov edi, dword [ecx + edx*4 + 0x920]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x1c]
fld qword [edx]
mov dl, byte [ecx + 0x495030]
mov ecx, dword [esp + 0x20]
fstp dword [esp]
push 4
push edx
push edi
jmp 0x429c49
mov edx, dword [esp + 0x50]
push 0
push 0
push 0
add edx, ebx
push 0
push 0
push 0
mov ecx, dword [edx + ecx]
push ecx
push 0x3ff00000
push 0
push eax
call fcn.00423190
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x44]
add esp, 0x28
movsx edx, word [edx + ecx]
push 0
mov ecx, dword [ebx]
push 0x3ff00000
push 0
add edx, 0x1f40
push 0
push edx
push 1
push eax
mov eax, dword [esp + 0x28]
push 0x1de
push eax
push ecx
call fcn.00408a50
mov eax, dword [ebx]
add esp, 0x28
inc eax
mov dword [ebx], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
inc eax
add ebx, 4
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
add eax, 8
add edx, 2
cmp eax, 0x4950d0
mov dword [esp + 0x40], eax
mov dword [esp + 0x1c], edx
jl 0x429b9d
jmp 0x429dff
xor eax, eax
mov edi, dword [esp + 0x20]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov eax, 0x494f58
lea edx, [esi + 0x1c]
sub eax, esi
mov dword [esp + 0x40], 0x494fa8
mov dword [esp + 0x3c], eax
mov eax, 0x1cc
sub eax, esi
lea ebx, [esi + 0x404]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
xor eax, eax
mov al, byte [ecx + 0x494f30]
mov ecx, dword [esp + 0xc]
add ecx, eax
cmp word [edx], 0xffff
mov dword [esp + 0xc], ecx
je 0x429dcc
call fcn.00407b00
mov dword [ebx], eax
call fcn.00423150
mov ecx, dword [esp + 0x54]
mov dword [ebx + 0x44], eax
mov edi, dword [0x652130]
add ecx, ebx
push 0
push 0
mov edx, dword [ecx + edi]
xor ecx, ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x24]
mov cl, byte [edx]
mov edx, ecx
and ecx, 0xf
shr edx, 4
lea edx, [edx + edx*8]
add edx, ecx
mov ecx, dword [esp + 0x48]
push ecx
mov edi, dword [edi + edx*4 + 0x614]
mov edx, dword [esp + 0x1c]
fld qword [ecx]
mov cl, byte [edx + 0x494f96]
mov edx, dword [esp + 0x20]
fstp dword [esp]
push 0x1a
push ecx
push edi
push edx
push 0x3ff00000
push 0
push eax
call fcn.00423190
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x64]
push 0
push 0x3ff00000
movsx ecx, word [ecx + edx]
mov edx, dword [esp + 0x3c]
push 0
add ecx, 0x1f40
push 0
push ecx
push 1
push eax
mov eax, dword [ebx]
push 0x1d6
push edx
push eax
call fcn.00408a50
mov eax, dword [ebx]
add esp, 0x50
inc eax
mov dword [ebx], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
inc eax
add ebx, 4
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
add eax, 8
add edx, 2
cmp eax, 0x495030
mov dword [esp + 0x40], eax
mov dword [esp + 0x1c], edx
jl 0x429d00
jmp 0x429dff
mov edi, dword [esp + 0x20]
mov eax, 0x240
lea ecx, [esi + 0x48]
sub eax, esi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x50
mov dword [esp + 0x3c], 0x494f74
lea ebx, [esi + 0x48c]
mov dword [esp + 0x40], 0x495050
mov dword [esp + 0x54], eax
mov ecx, 2
mov edx, dword [esp + 0x2c]
cmp word [edx], 0xffff
je 0x429f0c
call fcn.00407b00
mov dword [ebx], eax
call fcn.00423150
mov ecx, dword [esp + 0x54]
push 0
add ecx, ebx
push 0
mov dword [ecx + esi - 0x1fc], eax
mov edi, dword [0x652130]
mov edx, dword [ecx + edi]
xor ecx, ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x34]
mov cl, byte [edx]
mov edx, ecx
and ecx, 0xf
shr edx, 4
lea edx, [edx + edx*8]
add edx, ecx
mov ecx, dword [esp + 0x48]
push ecx
mov edi, dword [edi + edx*4 + 0x920]
mov edx, dword [esp + 0x1c]
fld qword [ecx]
mov cl, byte [edx + 0x495031]
mov edx, dword [esp + 0x20]
fstp dword [esp]
push 4
push ecx
push edi
push edx
push 0x3ff00000
push 0
push eax
call fcn.00423190
mov ecx, dword [esp + 0x64]
push 0
push 0x3ff00000
push 0
movsx edx, word [ecx]
mov ecx, dword [ebx]
add edx, 0x1d4c
push 0
push edx
push 1
push eax
mov eax, dword [esp + 0x50]
push 0x1b8
push eax
push ecx
call fcn.00408a50
mov ecx, dword [ebx]
mov eax, dword [esp + 0x60]
add esp, 0x50
inc ecx
xor edx, edx
mov dword [ebx], ecx
mov dl, byte [eax + str.________]
mov eax, dword [esp + 0xc]
add eax, edx
mov ecx, 2
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
inc eax
add edx, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x3c]
add eax, 8
add ebx, 4
add edx, ecx
cmp eax, 0x495090
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edx
jl 0x429e3c
xor eax, eax
lea ecx, [esi + 0x3e]
mov dword [esp + 0x4c], 0x495030
mov dword [esp + 0x3c], 0x70c
mov dword [esp + 0x50], 0x494f74
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x50]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x54], 0x495048
mov ebx, dword [esp + 0x1c]
cmp word [ebx], 0xffff
je case.default.0x429b36
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x18], 0
mov dword [esp + 0x40], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x20], eax
mov ebx, dword [esi + 0x514]
lea eax, [ebx + 1]
mov dword [esi + 0x514], eax
call fcn.00407b00
mov dword [esi + ebx*4 + 0x518], eax
call fcn.00423150
mov ecx, dword [esp + 0x20]
mov dword [esi + ebx*4 + 0x568], eax
mov edx, dword [0x652130]
mov dword [esp + 0x58], eax
mov ecx, dword [ecx + edx - 0x44]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
lea ecx, [edx + 1]
mov cl, byte [edx + 1]
and ecx, 0xf
cmp ecx, 3
ja case.default.0x42a005
jmp dword [ecx*4 + 0x42b8cc]
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov edx, dword [esp + 0x18]
mov cl, byte [eax]
lea edi, [eax + 1]
xor eax, eax
mov al, byte [edi]
mov edi, eax
shr edi, 4
lea eax, [edx + edi*2]
xor edx, edx
mov dl, byte [edi + eax + 0x494f20]
mov eax, ecx
shr eax, 4
and ecx, 0xf
lea eax, [eax + eax*8]
add edx, eax
mov eax, dword [esp + 0x58]
add edx, ecx
mov ecx, dword [0x652130]
mov edi, dword [ecx + edx*4 + 0x920]
jmp case.default.0x42a005
mov edx, dword [esp + 0x1c]
xor ecx, ecx
mov cl, byte [edx]
mov edx, ecx
and ecx, 0xf
shr edx, 4
lea edx, [edx + edx*8]
add edx, ecx
mov ecx, dword [0x652130]
mov edi, dword [ecx + edx*4 + 0x920]
jmp case.default.0x42a005
mov edx, dword [esp + 0x20]
mov ecx, dword [0x652130]
xor edi, edi
mov edx, dword [edx + ecx]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
push 0
push 0
fld qword [ecx]
push ecx
mov cl, byte [edx]
mov edx, dword [esp + 0x20]
fstp dword [esp]
push 4
push ecx
push edi
push edx
push 0x3ff00000
push 0
push eax
call fcn.00423190
mov ecx, dword [esp + 0x58]
push 0
push 0x3ff00000
push 0
movsx edx, word [ecx]
mov ecx, dword [esi + ebx*4 + 0x518]
add edx, 0x1f40
push 0
push edx
push 1
push eax
mov eax, dword [esp + 0x84]
push 0x1de
push eax
push ecx
call fcn.00408a50
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x80]
add ebx, 4
add edx, 8
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x7c]
add esp, 0x50
inc eax
add ecx, 2
add ebx, 0x28
inc edx
cmp eax, 3
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x2c], edx
jl 0x429fb2
mov edx, dword [esp + 0x1c]
lea eax, [edx + 1]
mov al, byte [edx + 1]
and al, 0xf
cmp al, 2
je 0x42a157
cmp al, 3
jne 0x42a217
mov ebx, dword [esi + 0x514]
lea eax, [ebx + 1]
mov dword [esi + 0x514], eax
call fcn.00407b00
mov dword [esi + ebx*4 + 0x518], eax
call fcn.00423150
mov ecx, dword [esp + 0x3c]
mov dword [esi + ebx*4 + 0x568], eax
mov edi, dword [0x652130]
push 0
push 0
mov edx, dword [ecx + edi - 0x40]
xor ecx, ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x24]
mov cl, byte [edx]
mov edx, ecx
and ecx, 0xf
shr edx, 4
lea edx, [edx + edx*8]
add edx, ecx
mov ecx, dword [esp + 0x5c]
push ecx
mov edi, dword [edi + edx*4 + 0x920]
mov edx, dword [esp + 0x58]
fld qword [ecx + 8]
mov cl, byte [edx + 1]
mov edx, dword [esp + 0x20]
fstp dword [esp]
push 4
push ecx
push edi
push edx
push 0x3ff00000
push 0
push eax
call fcn.00423190
mov ecx, dword [esp + 0x78]
push 0
push 0x3ff00000
push 0
movsx edx, word [ecx + 2]
mov ecx, dword [esp + 0x44]
add edx, 0x2134
push 0
push edx
push 1
push eax
mov eax, dword [esp + 0x50]
push 0x1bb
lea edx, [eax + ecx*2 + 0x22]
mov eax, dword [esi + ebx*4 + 0x518]
push edx
push eax
call fcn.00408a50
add esp, 0x50
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0xc]
inc ecx
add ebx, 0x82
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x2c]
add eax, 2
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
cmp ebx, 5
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
jl 0x429f7f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0x400]
mov ecx, 2
test al, al
je 0x42a432
jbe 0x42a558
cmp al, cl
ja 0x42a558
mov edi, dword [esp + 0x14]
lea ecx, [esi + 0x444]
mov dword [esp + 0x20], ecx
lea edx, [esi + 0x3c]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0xc], 0xdf
mov dword [esp + 0x50], 0x495030
mov dword [esp + 0x4c], 0x494f74
mov dword [esp + 0x54], 0x495048
mov dword [esp + 0x30], 0x70c
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], 0x11
mov ecx, 2
mov eax, 4
mov edx, dword [esp + 0x38]
cmp word [edx], 0xffff
je 0x42a3d7
call fcn.00407b00
mov edi, dword [esp + 0x20]
mov dword [edi], eax
call fcn.00423150
mov dword [esp + 0x3c], eax
mov dword [edi + 0x44], eax
mov al, byte [esi + 0x400]
mov edx, dword [0x652130]
cmp al, 1
mov eax, dword [esp + 0x30]
jne 0x42a33d
mov edi, dword [eax + edx - 0x44]
mov ecx, dword [esp + 0x38]
xor eax, eax
mov al, byte [ecx]
mov ecx, eax
and eax, 0xf
shr ecx, 4
lea ecx, [ecx + ecx*8]
add ecx, eax
mov ebx, dword [edx + ecx*4 + 0xe0c]
jmp 0x42a342
mov edi, dword [eax + edx]
xor ebx, ebx
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
push 0
push 0
fld qword [ecx]
xor edx, edx
push ecx
mov dl, byte [eax]
fstp dword [esp]
mov dword [esp + 0x64], edx
push 2
fild dword [esp + 0x68]
fmul qword [0x485798]
call fcn.0047ddb0
mov ecx, dword [esp + 0x4c]
push eax
push ebx
push edi
push 0x3fdccccc
push 0xcccccccd
push ecx
call fcn.00423190
mov edx, dword [0x652130]
mov ecx, dword [esp + 0x74]
push 0
push 0x3ff00000
add edx, 0x4b2c
push 0
push edx
movsx edx, word [ecx]
mov ecx, dword [esp + 0x58]
add edx, 0x3e8
push edx
push 1
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x50]
push 0xdc
push eax
push edx
call fcn.00408a50
mov eax, dword [esp + 0x70]
add esp, 0x50
mov ecx, dword [eax]
inc ecx
mov dword [eax], ecx
mov ecx, 2
mov eax, 4
mov edx, dword [esp + 0x38]
sub edx, ecx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x20]
sub edx, eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xc]
add edx, 0x14
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x30]
add edx, eax
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x54]
add edx, 8
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x50]
inc edx
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x4c]
add edx, ecx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x40]
dec edx
mov dword [esp + 0x40], edx
jne 0x42a2e1
jmp 0x42a560
mov edi, dword [esp + 0x14]
lea eax, [esi + 0x3c]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 0xdf
mov dword [esp + 0x50], 0x495028
lea ebx, [esi + 0x444]
mov dword [esp + 0x40], 0x494f74
mov dword [esp + 0x54], 0x750
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x4c]
cmp word [edx], 0xffff
je 0x42a50a
call fcn.00407b00
mov dword [ebx], eax
call fcn.00423150
mov edx, dword [esp + 0x54]
mov dword [ebx + 0x44], eax
mov ecx, dword [0x652130]
push 0
push 0
mov edi, dword [edx + ecx]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x18]
push ecx
fld qword [ecx]
mov cl, byte [edx + 0x494f96]
fstp dword [esp]
push 0x1a
push ecx
push 0
push edi
push 0x3fdccccc
push 0xcccccccd
push eax
call fcn.00423190
mov edx, dword [0x652130]
mov ecx, dword [esp + 0x68]
push 0
push 0x3ff00000
add edx, 0x4b2c
push 0
push edx
movsx edx, word [ecx]
mov ecx, dword [ebx]
add edx, 0x3e8
push edx
push 1
push eax
mov eax, dword [esp + 0x50]
push 0xd8
push eax
push ecx
call fcn.00408a50
mov eax, dword [ebx]
add esp, 0x50
inc eax
mov ecx, 2
mov dword [ebx], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
dec edx
add eax, 4
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x50]
sub edx, 8
sub ebx, 4
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x4c]
sub edx, ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x40]
add edx, ecx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0xc]
add edx, 0x14
cmp eax, 0x790
mov dword [esp + 0xc], edx
jle 0x42a46b
jmp 0x42a55c
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
lea eax, [esi + 0x48]
lea edx, [esi + 0x48c]
mov dword [esp + 0x38], eax
mov dword [esp + 0xc], 0x214
mov dword [esp + 0x4c], 0x49503f
mov dword [esp + 0x40], 0x494f92
mov dword [esp + 0x50], 0x4950c0
mov dword [esp + 0x54], 0x704
mov dword [esp + 0x20], edx
mov dword [esp + 0x3c], 8
mov ecx, 2
mov eax, 4
mov edx, dword [esp + 0x38]
cmp word [edx], 0xffff
je 0x42a68f
call fcn.00407b00
mov edi, dword [esp + 0x20]
mov dword [edi], eax
call fcn.00423150
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x30], eax
mov dword [edi + 0x44], eax
mov edx, dword [0x652130]
mov eax, dword [esp + 0x54]
push 0
push 0
mov edi, dword [eax + edx]
xor eax, eax
mov al, byte [ecx]
mov ecx, eax
and eax, 0xf
shr ecx, 4
lea ecx, [ecx + ecx*8]
add ecx, eax
xor eax, eax
push ecx
mov ebx, dword [edx + ecx*4 + 0xe0c]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
fld qword [edx]
mov al, byte [ecx]
fstp dword [esp]
mov dword [esp + 0x64], eax
push 2
fild dword [esp + 0x68]
fmul qword [0x485798]
call fcn.0047ddb0
mov edx, dword [esp + 0x40]
push eax
push ebx
push edi
push 0x3fdccccc
push 0xcccccccd
push edx
call fcn.00423190
mov ecx, dword [0x652130]
mov edx, dword [esp + 0x68]
push 0
push 0x3ff00000
add ecx, 0x4b2c
push 0
push ecx
movsx ecx, word [edx]
mov edx, dword [esp + 0x44]
add ecx, 0x44c
push ecx
push 1
push eax
mov eax, dword [esp + 0x64]
push 0xee
push edx
mov ecx, dword [eax]
push ecx
call fcn.00408a50
mov eax, dword [esp + 0x70]
add esp, 0x50
mov ecx, dword [eax]
inc ecx
mov dword [eax], ecx
mov ecx, 2
mov eax, 4
mov edx, dword [esp + 0x38]
add edx, ecx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x20]
add edx, eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xc]
sub edx, 0x14
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x54]
sub edx, eax
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x50]
sub edx, 8
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x4c]
dec edx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x40]
sub edx, ecx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x3c]
dec edx
mov dword [esp + 0x3c], edx
jne 0x42a5ab
lea edx, [esi + 0x3e]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x221
mov dword [esp + 0x54], 0x495040
mov dword [esp + 0x4c], 0x4950c8
mov dword [esp + 0x50], 0x494f94
mov dword [esp + 0x2c], 0x748
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
cmp word [eax], 0xffff
je case.default.0x429b36
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x4c]
add edx, 0xffffffc0
mov dword [esp + 0x18], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x20], edx
mov eax, dword [esi + 0x514]
mov dword [esp + 0x14], eax
inc eax
mov dword [esi + 0x514], eax
call fcn.00407b00
mov ecx, dword [esp + 0x14]
mov dword [esi + ecx*4 + 0x518], eax
call fcn.00423150
mov edx, dword [esp + 0x14]
mov dword [esp + 0x64], eax
mov dword [esi + edx*4 + 0x568], eax
mov eax, dword [esp + 0x1c]
inc eax
mov al, byte [eax]
and eax, 0xf
cmp eax, 3
ja case.default.0x42a7a6
jmp dword [eax*4 + 0x42b8dc]
mov ecx, dword [esp + 0x20]
mov edx, dword [0x652130]
mov eax, dword [esp + 0x1c]
xor ebx, ebx
mov edi, dword [ecx + edx]
xor edx, edx
mov dl, byte [eax]
lea ecx, [eax + 1]
mov eax, edx
xor edx, edx
mov dl, byte [ecx]
mov ecx, edx
mov edx, dword [esp + 0x18]
shr ecx, 4
lea edx, [edx + ecx*2]
mov bl, byte [ecx + edx + 0x494f20]
mov ecx, eax
mov edx, dword [0x652130]
and eax, 0xf
shr ecx, 4
lea ecx, [ecx + ecx*8]
add ebx, ecx
add ebx, eax
mov ebx, dword [edx + ebx*4 + 0xe0c]
jmp case.default.0x42a7a6
mov edx, dword [0x652130]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edi, dword [eax + edx]
xor eax, eax
mov al, byte [ecx]
mov ecx, eax
and eax, 0xf
shr ecx, 4
lea ecx, [ecx + ecx*8]
add ecx, eax
mov ebx, dword [edx + ecx*4 + 0xe0c]
jmp case.default.0x42a7a6
mov edx, dword [0x652130]
mov eax, dword [esp + 0x20]
xor ebx, ebx
mov edi, dword [eax + edx + 0x44]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
push 0
push 0
fld qword [ecx]
xor edx, edx
push ecx
mov dl, byte [eax]
fstp dword [esp]
mov dword [esp + 0x64], edx
push 2
fild dword [esp + 0x68]
fmul qword [0x485798]
call fcn.0047ddb0
mov ecx, dword [esp + 0x74]
push eax
push ebx
push edi
push 0x3fdccccc
push 0xcccccccd
push ecx
call fcn.00423190
mov edx, dword [0x652130]
mov ecx, dword [esp + 0x58]
push 0
push 0x3ff00000
add edx, 0x4b2c
push 0
push edx
movsx edx, word [ecx]
mov ecx, dword [esp + 0x4c]
add edx, 0x3e8
push edx
push 1
mov edx, dword [esi + ecx*4 + 0x518]
push eax
mov eax, dword [esp + 0x84]
push 0xdc
push eax
push edx
call fcn.00408a50
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x68]
sub edx, 0x14
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x8c]
sub ecx, 4
sub edx, 8
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x88]
add esp, 0x50
inc eax
sub ecx, 2
dec edx
cmp eax, 3
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], edx
jl 0x42a75e
mov eax, dword [esp + 0x1c]
inc eax
mov al, byte [eax]
and al, 0xf
cmp al, 2
je 0x42a931
cmp al, 3
jne 0x42aa31
mov edi, dword [esi + 0x514]
mov dword [esp + 0x14], edi
lea ecx, [edi + 1]
mov dword [esi + 0x514], ecx
call fcn.00407b00
mov dword [esi + edi*4 + 0x518], eax
call fcn.00423150
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x58], eax
mov dword [esi + edi*4 + 0x568], eax
lea eax, [edx + 1]
mov edx, dword [0x652130]
mov al, byte [eax]
and al, 0xf
cmp al, 2
jne 0x42a99b
mov ecx, dword [esp + 0x2c]
xor eax, eax
mov edi, dword [ecx + edx - 0x44]
mov ecx, dword [esp + 0x1c]
mov al, byte [ecx]
mov ecx, eax
and eax, 0xf
shr ecx, 4
lea ecx, [ecx + ecx*8]
add ecx, eax
mov ebx, dword [edx + ecx*4 + 0xe0c]
jmp 0x42a9a4
mov eax, dword [esp + 0x2c]
xor ebx, ebx
mov edi, dword [eax + edx]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
push 0
push 0
fld qword [ecx - 8]
xor edx, edx
push ecx
mov dl, byte [eax - 1]
fstp dword [esp]
mov dword [esp + 0x70], edx
push 2
fild dword [esp + 0x74]
fmul qword [0x485798]
call fcn.0047ddb0
mov ecx, dword [esp + 0x68]
push eax
push ebx
push edi
push 0x3fdccccc
push 0xcccccccd
push ecx
call fcn.00423190
mov edx, dword [0x652130]
mov ecx, dword [esp + 0x78]
push 0
push 0x3ff00000
add edx, 0x4b2c
push 0
push edx
movsx edx, word [ecx - 2]
mov ecx, dword [esp + 0x4c]
add edx, 0x3e8
push edx
push 1
mov edx, dword [esi + ecx*4 + 0x518]
push eax
mov eax, dword [esp + 0x50]
push 0xce
add eax, 0xffffffec
push eax
push edx
call fcn.00408a50
add esp, 0x50
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
add ecx, 2
sub edx, 0xc
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x30]
inc eax
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x40]
cmp eax, 5
mov dword [esp + 0x10], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0xc], edx
jl 0x42a71c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0x400]
mov ecx, 0x3de
test al, al
je 0x42abc3
jbe 0x42acb0
cmp al, 2
ja 0x42acb0
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x54], ecx
lea eax, [esi + 0x404]
lea ecx, [esi + 0x1c]
mov dword [esp + 0x50], 0
mov edi, 0x4950d2
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x40]
cmp word [edx], 0xffff
je 0x42ab81
call fcn.00407b00
mov ebx, dword [esp + 0x2c]
mov dword [ebx], eax
call fcn.00423150
mov dword [ebx + 0x44], eax
mov cl, byte [esi + 0x400]
cmp cl, 1
jne 0x42ab18
mov edx, dword [esp + 0x40]
xor ecx, ecx
mov cl, byte [edx]
mov edx, ecx
and ecx, 0xf
shr edx, 4
lea edx, [edx + edx*8]
add edx, ecx
mov ecx, dword [0x652130]
mov ebx, dword [ecx + edx*4 + 0x7a0]
jmp 0x42ab24
mov edx, dword [0x652130]
mov ebx, dword [edx + 0x798]
mov ecx, dword [edi + 0xa]
mov edx, dword [edi + 6]
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
push ecx
push edx
push eax
call fcn.00423190
mov ecx, dword [0x652130]
mov edx, dword [esp + 0x78]
sub ecx, edx
mov edx, dword [esp + 0x7c]
push 0
push 0x3ff00000
add ecx, 0x4f2c
push 0
push ecx
push edx
movsx ecx, word [edi - 2]
mov edx, dword [esp + 0x68]
push 1
push eax
movsx eax, word [edi]
push eax
mov eax, dword [edx]
push ecx
push eax
call fcn.00408a50
mov eax, dword [esp + 0x7c]
add esp, 0x50
inc dword [eax]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
add edx, 2
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x2c]
add eax, 0xa
add edx, 4
add ecx, 0x400
add edi, 0x18
cmp eax, 0x488
mov dword [esp + 0x54], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x50], ecx
jl 0x42aac7
jmp 0x42acb4
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
lea ecx, [esi + 0x1c]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x40], 0x4950d2
lea edi, [esi + 0x404]
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x54]
cmp word [edx], 0xffff
je 0x42ac71
call fcn.00407b00
mov dword [edi], eax
call fcn.00423150
mov dword [edi + 0x44], eax
mov ecx, dword [0x652130]
push 0
push 0
mov ebx, dword [ecx + 0x794]
mov ecx, dword [esp + 0x48]
push 0
push 0
mov edx, dword [ecx + 0xa]
mov ecx, dword [ecx + 6]
push 0
push 0
push ebx
push edx
push ecx
push eax
call fcn.00423190
mov edx, dword [0x652130]
mov ecx, dword [esp + 0x74]
sub edx, ecx
mov ecx, dword [esp + 0x78]
push 0
push 0x3ff00000
add edx, 0x4f2c
push 0
push edx
push ecx
push 1
push eax
mov eax, dword [esp + 0x84]
mov ecx, dword [edi]
movsx edx, word [eax]
movsx eax, word [eax - 2]
push edx
push eax
push ecx
call fcn.00408a50
mov eax, dword [edi]
add esp, 0x50
inc eax
mov dword [edi], eax
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
add edx, 2
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x40]
add eax, 0xa
add edi, 4
add ecx, 0x400
add edx, 0x18
cmp eax, 0x488
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x40], edx
jl 0x42abe8
jmp 0x42acb4
mov ebx, dword [esp + 0x14]
xor eax, eax
lea edx, [esi + 0x48]
mov dword [esp + 0x10], eax
mov dword [esp + 0x50], eax
lea edi, [esi + 0x48c]
mov dword [esp + 0x3c], 0x495102
mov dword [esp + 0x54], 0x3f4
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
cmp word [eax], 0xffff
je 0x42adce
call fcn.00407b00
mov dword [edi], eax
call fcn.00423150
mov edx, dword [esp + 0x40]
xor ecx, ecx
mov dword [edi + 0x44], eax
push 0
mov cl, byte [edx]
push 0
mov edx, ecx
and ecx, 0xf
shr edx, 4
push 0
push 0
lea edx, [edx + edx*8]
push 0
add edx, ecx
mov ecx, dword [0x652130]
push 0
mov ebx, dword [ecx + edx*4 + 0x7a0]
mov ecx, dword [esp + 0x54]
push ebx
mov edx, dword [ecx + 0xa]
mov ecx, dword [ecx + 6]
push edx
push ecx
push eax
call fcn.00423190
mov edx, dword [0x652130]
mov ecx, dword [esp + 0x78]
sub edx, ecx
mov ecx, dword [esp + 0x7c]
push 0
push 0x3ff00000
add edx, 0x4b2c
push 0
push edx
push ecx
mov ecx, dword [esp + 0x78]
push 1
push eax
mov eax, dword [esp + 0x54]
movsx edx, word [ecx]
movsx ecx, word [ecx - 2]
add edx, eax
push edx
lea edx, [ecx + eax + 0x1c]
mov eax, dword [edi]
push edx
push eax
call fcn.00408a50
mov ecx, dword [edi]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x8c]
add esp, 0x50
inc ecx
inc eax
add edx, 0x18
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x54]
mov dword [edi], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x50]
add eax, 0xb
add ecx, 2
add edi, 4
add edx, 0x400
cmp eax, 0x44c
mov dword [esp + 0x54], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x50], edx
jl 0x42acdb
xor eax, eax
lea ecx, [esi + 0x3e]
mov dword [esp + 0x10], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0x3de
mov dword [esp + 0x38], 0x4950ea
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x1c]
cmp word [edx], 0xffff
je case.default.0x429b36
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x18], 0
mov dword [esp + 0x3c], eax
lea edi, [ecx - 0x18]
mov dword [esp + 0x40], edx
mov eax, dword [esi + 0x514]
mov dword [esp + 0x14], eax
inc eax
mov dword [esi + 0x514], eax
call fcn.00407b00
mov ecx, dword [esp + 0x14]
mov dword [esi + ecx*4 + 0x518], eax
call fcn.00423150
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x64], eax
mov dword [esi + edx*4 + 0x568], eax
mov cl, byte [ecx]
and ecx, 0xf
cmp ecx, 3
ja case.default.0x42ae61
jmp dword [ecx*4 + 0x42b8ec]
mov eax, dword [esp + 0x1c]
xor ecx, ecx
xor ebx, ebx
mov cl, byte [eax]
lea edx, [eax + 1]
xor eax, eax
mov al, byte [edx]
mov edx, dword [esp + 0x18]
shr eax, 4
lea edx, [edx + eax*2]
mov bl, byte [eax + edx + 0x494f20]
mov eax, ecx
shr eax, 4
and ecx, 0xf
lea eax, [eax + eax*8]
add ebx, eax
mov eax, dword [esp + 0x64]
add ebx, ecx
mov ecx, dword [0x652130]
mov ebx, dword [ecx + ebx*4 + 0x7a0]
jmp case.default.0x42ae61
mov edx, dword [esp + 0x1c]
xor ecx, ecx
mov cl, byte [edx]
mov edx, ecx
and ecx, 0xf
shr edx, 4
lea edx, [edx + edx*8]
add edx, ecx
mov ecx, dword [0x652130]
mov ebx, dword [ecx + edx*4 + 0x7a0]
jmp case.default.0x42ae61
mov edx, dword [0x652130]
mov ebx, dword [edx + 0x798]
mov ecx, dword [edi + 0xa]
mov edx, dword [edi + 6]
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
push ecx
push edx
push eax
call fcn.00423190
mov ecx, dword [0x652130]
mov edx, dword [esp + 0x64]
sub ecx, edx
mov edx, dword [esp + 0x68]
push 0
push 0x3ff00000
add ecx, 0x4f2c
push 0
push ecx
push edx
movsx ecx, word [edi - 2]
mov edx, dword [esp + 0x50]
push 1
push eax
movsx eax, word [edi]
push eax
mov eax, dword [esi + edx*4 + 0x518]
push ecx
push eax
call fcn.00408a50
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
add esp, 0x50
inc eax
add edx, 0xa
add ecx, 0x400
add edi, 0x18
cmp eax, 3
mov dword [esp + 0x18], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], ecx
jl 0x42ae1d
mov edi, dword [esp + 0x1c]
mov al, byte [edi + 1]
and al, 0xf
cmp al, 2
je 0x42af81
cmp al, 3
jne 0x42b052
mov ebx, dword [esi + 0x514]
mov dword [esp + 0x14], ebx
lea ecx, [ebx + 1]
mov dword [esi + 0x514], ecx
call fcn.00407b00
mov dword [esi + ebx*4 + 0x518], eax
call fcn.00423150
mov dword [esi + ebx*4 + 0x568], eax
mov dl, byte [edi + 1]
and dl, 0xf
cmp dl, 2
jne 0x42afd7
xor ecx, ecx
mov cl, byte [edi]
mov edx, ecx
and ecx, 0xf
shr edx, 4
lea edx, [edx + edx*8]
add edx, ecx
mov ecx, dword [0x652130]
mov ebx, dword [ecx + edx*4 + 0x7a0]
jmp 0x42afe3
mov edx, dword [0x652130]
mov ebx, dword [edx + 0x798]
mov edi, dword [esp + 0x38]
push 0
push 0
push 0
mov ecx, dword [edi + 0xa]
mov edx, dword [edi + 6]
push 0
push 0
push 0
push ebx
push ecx
push edx
push eax
call fcn.00423190
mov ecx, dword [0x652130]
mov edx, dword [esp + 0x78]
sub ecx, edx
mov edx, dword [esp + 0x7c]
push 0
push 0x3ff00000
add ecx, 0x4b2c
push 0
add edx, 0xa
push ecx
mov ecx, dword [edi + 0x12]
push edx
movsx edx, word [edi - 2]
push 1
push eax
movsx eax, word [edi]
add ecx, eax
mov eax, dword [esp + 0x58]
push ecx
mov ecx, dword [edi + 0xe]
add edx, ecx
mov ecx, dword [esi + eax*4 + 0x518]
push edx
push ecx
call fcn.00408a50
add esp, 0x50
jmp 0x42b056
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
add ecx, 2
inc eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
add edi, 0x48
cmp eax, 5
mov dword [esp + 0x10], eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x38], edi
jl 0x42adef
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0x400]
test al, al
je 0x42b2a1
jbe 0x42b3d9
cmp al, 2
ja 0x42b3d9
mov edi, dword [esp + 0x14]
lea edx, [esi + 0x444]
lea eax, [esi + 0x3c]
mov dword [esp + 0x38], 0x4000
mov dword [esp + 0x1c], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], 0x3de
mov ebx, 0x4950d8
mov ecx, dword [esp + 0x40]
cmp word [ecx], 0xffff
je 0x42b25f
call fcn.00407b00
mov edi, dword [esp + 0x1c]
mov dword [edi], eax
call fcn.00423150
mov dword [esp + 0x54], eax
mov dword [edi + 0x44], eax
cmp byte [esi + 0x400], 1
jne 0x42b1bb
mov edx, dword [esp + 0x40]
xor eax, eax
mov al, byte [edx]
mov edx, dword [0x652130]
mov ecx, eax
and eax, 0xf
shr ecx, 4
lea ecx, [ecx + ecx*8]
add ecx, eax
mov eax, dword [ebx]
mov dword [esp + 0x58], eax
mov edi, dword [edx + ecx*4 + 0x854]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x5c], ecx
movsx edx, word [edi + 2]
mov dword [esp + 0x64], edx
fild dword [esp + 0x64]
fmul qword [esp + 0x58]
call fcn.0047ddb0
movsx edx, word [ebx - 8]
mov ecx, eax
mov eax, 0x320
sub eax, ecx
mov ecx, dword [esp + 0x58]
push 0
push 0
sub eax, edx
mov edx, dword [esp + 0x5c]
push 0
push 0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x6c]
push 0
push 0
push edi
push eax
push ecx
push edx
call fcn.00423190
mov ecx, dword [0x652130]
mov edx, dword [esp + 0x60]
push 0
push 0x3ff00000
lea ecx, [edx + ecx + 0xf2c]
mov edx, dword [esp + 0x6c]
push 0
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x58]
push 1
push eax
movsx eax, word [ebx - 6]
push eax
mov eax, dword [edx]
push ecx
push eax
jmp 0x42b251
mov ecx, dword [0x652130]
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
mov dword [esp + 0x58], edx
mov edi, dword [ecx + 0x798]
mov dword [esp + 0x5c], eax
movsx ecx, word [edi + 2]
mov dword [esp + 0x64], ecx
fild dword [esp + 0x64]
fmul qword [esp + 0x58]
call fcn.0047ddb0
movsx ecx, word [ebx - 8]
mov edx, eax
mov eax, 0x320
push 0
sub eax, edx
mov edx, dword [esp + 0x60]
push 0
push 0
sub eax, ecx
mov ecx, dword [esp + 0x60]
push 0
push 0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x6c]
push 0
push edi
push edx
push eax
push ecx
call fcn.00423190
mov edx, dword [0x652130]
mov ecx, dword [esp + 0x60]
push 0
push 0x3ff00000
lea edx, [ecx + edx + 0xf2c]
mov ecx, dword [esp + 0x6c]
push 0
push edx
movsx edx, word [ebx - 6]
push ecx
mov ecx, dword [esp + 0x58]
push 3
push eax
mov eax, dword [esp + 0x50]
push edx
mov edx, dword [ecx]
push eax
push edx
call fcn.00408a50
mov eax, dword [esp + 0x6c]
add esp, 0x50
inc dword [eax]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
sub eax, 4
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3c]
add eax, 0xa
sub ecx, 2
add ebx, 0x18
sub edx, 0x400
cmp eax, 0x47e
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], edx
jle 0x42b0d7
jmp 0x42b3dd
mov edi, dword [esp + 0x14]
lea eax, [esi + 0x3c]
mov dword [esp + 0x4c], 0x4000
lea ebx, [esi + 0x444]
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], 0x3de
mov dword [esp + 0x2c], 0x4950d8
mov ecx, dword [esp + 0x54]
cmp word [ecx], 0xffff
je 0x42b39a
call fcn.00407b00
mov dword [ebx], eax
call fcn.00423150
mov dword [ebx + 0x44], eax
mov edx, dword [0x652130]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x2c]
mov edi, dword [edx + 0x794]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
movsx eax, word [edi + 2]
mov dword [esp + 0x64], eax
mov dword [esp + 0x40], ecx
fild dword [esp + 0x64]
mov dword [esp + 0x44], edx
fmul qword [esp + 0x40]
call fcn.0047ddb0
mov edx, dword [esp + 0x2c]
mov ecx, eax
mov eax, 0x320
push 0
sub eax, ecx
push 0
movsx ecx, word [edx - 8]
mov edx, dword [esp + 0x4c]
push 0
sub eax, ecx
mov ecx, dword [esp + 0x64]
push 0
push 0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x54]
push 0
push edi
push edx
push eax
push ecx
call fcn.00423190
mov edx, dword [0x652130]
mov ecx, dword [esp + 0x74]
push 0
push 0x3ff00000
lea edx, [edx + ecx + 0xf2c]
mov ecx, dword [esp + 0x80]
push 0
push edx
mov edx, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x48]
push 3
push eax
movsx eax, word [edx - 6]
mov edx, dword [ebx]
push eax
push ecx
push edx
call fcn.00408a50
mov eax, dword [ebx]
add esp, 0x50
inc eax
mov dword [ebx], eax
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
sub ecx, 2
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x2c]
add eax, 0xa
sub ebx, 4
add ecx, 0x18
sub edx, 0x400
cmp eax, 0x47e
mov dword [esp + 0x50], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x4c], edx
jle 0x42b2ca
jmp 0x42b3dd
mov edi, dword [esp + 0x14]
lea eax, [esi + 0x56]
lea ebx, [esi + 0x4a8]
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], 0
mov dword [esp + 0x2c], 0x495198
mov dword [esp + 0x54], 0x436
mov ecx, dword [esp + 0x40]
cmp word [ecx], 0xffff
je 0x42b4d3
call fcn.00407b00
mov dword [ebx], eax
call fcn.00423150
mov edx, dword [esp + 0x40]
xor ecx, ecx
mov dword [ebx + 0x44], eax
push 0
mov cl, byte [edx]
push 0
mov edx, ecx
and ecx, 0xf
shr edx, 4
push 0
push 0
lea edx, [edx + edx*8]
push 0
add edx, ecx
mov ecx, dword [0x652130]
push 0
mov edi, dword [ecx + edx*4 + 0x854]
mov ecx, dword [esp + 0x44]
push edi
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
push edx
push ecx
push eax
call fcn.00423190
mov edx, dword [0x652130]
mov ecx, dword [esp + 0x78]
push 0
push 0x3ff00000
lea edx, [ecx + edx + 0xf2c]
mov ecx, dword [esp + 0x84]
push 0
push edx
push ecx
push 1
movsx ecx, word [edi + 2]
mov dword [esp + 0xa4], ecx
push eax
fild dword [esp + 0xa8]
mov eax, dword [esp + 0x70]
fmul qword [eax]
movsx edx, word [eax - 6]
fmul qword [0x4857c0]
add edx, 0xf
push edx
call fcn.0047ddb0
mov edx, 0x320
sub edx, eax
mov eax, dword [esp + 0x74]
movsx ecx, word [eax - 8]
sub edx, ecx
push edx
mov edx, dword [ebx]
push edx
call fcn.00408a50
mov eax, dword [ebx]
add esp, 0x50
inc eax
mov dword [ebx], eax
mov edx, dword [esp + 0x40]
mov ecx, 2
mov eax, dword [esp + 0x54]
sub edx, ecx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x2c]
add edx, 0x18
add eax, 0xb
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x50]
sub ebx, 4
add edx, 0x400
cmp eax, 0x483
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], edx
jle 0x42b402
lea eax, [esi + 0x46]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x38], 0x800
mov dword [esp + 0x3c], 0x3f2
mov dword [esp + 0xc], 0x495120
mov dword [esp + 0x1c], eax
mov dword [esp + 0x4c], 5
mov ecx, dword [esp + 0x1c]
cmp word [ecx], 0xffff
je 0x42b869
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
add ecx, 0xffffffe8
mov dword [esp + 0x18], 0
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x2c], ecx
mov ebx, dword [esi + 0x514]
mov dword [esp + 0x14], ebx
lea edx, [ebx + 1]
mov dword [esi + 0x514], edx
call fcn.00407b00
mov dword [esi + ebx*4 + 0x518], eax
call fcn.00423150
mov dword [esp + 0x58], eax
mov dword [esi + ebx*4 + 0x568], eax
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 1]
mov eax, ecx
mov al, byte [eax]
and eax, 0xf
cmp eax, 3
ja case.default.0x42b5b7
jmp dword [eax*4 + 0x42b8fc]
mov edx, dword [esp + 0x1c]
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x10], 1
mov al, byte [edx]
xor edx, edx
mov dl, byte [ecx]
mov ecx, edx
mov edx, dword [esp + 0x18]
shr ecx, 4
lea edx, [edx + ecx*2]
mov bl, byte [ecx + edx + 0x494f20]
mov ecx, eax
mov edx, dword [0x652130]
and eax, 0xf
shr ecx, 4
lea ecx, [ecx + ecx*8]
add ebx, ecx
add ebx, eax
mov edi, dword [edx + ebx*4 + 0x854]
jmp case.default.0x42b5b7
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x10], 1
mov al, byte [ecx]
mov ecx, eax
and eax, 0xf
shr ecx, 4
lea edx, [ecx + ecx*8]
add edx, eax
mov eax, dword [0x652130]
mov edi, dword [eax + edx*4 + 0x854]
jmp case.default.0x42b5b7
mov ecx, dword [0x652130]
mov dword [esp + 0x10], 3
mov edi, dword [ecx + 0x798]
movsx ecx, word [edi + 2]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x64], ecx
fild dword [esp + 0x64]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
fmul qword [esp + 0x30]
call fcn.0047ddb0
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov ebx, 0x320
push 0
sub ebx, eax
push 0
movsx eax, word [edx - 8]
mov edx, dword [esp + 0x38]
push 0
push 0
push 0
push 0
sub ebx, eax
mov eax, dword [esp + 0x70]
push edi
push ecx
push edx
push eax
call fcn.00423190
mov ecx, dword [0x652130]
mov edx, dword [esp + 0x78]
sub ecx, edx
mov edx, dword [esp + 0x7c]
push 0
push 0x3ff00000
add ecx, 0x4f2c
push 0
push ecx
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x58]
push eax
movsx eax, word [edx - 6]
add eax, dword [esp + 0x84]
add eax, ecx
mov ecx, dword [esp + 0x58]
push eax
push ebx
mov edx, dword [esi + ecx*4 + 0x518]
push edx
call fcn.00408a50
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa0]
mov edx, dword [esp + 0x7c]
add esp, 0x50
inc eax
add ecx, 0xa
add ebx, 0x400
add edx, 0x18
cmp eax, 3
mov dword [esp + 0x18], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x2c], edx
jl 0x42b571
mov ebx, dword [esp + 0x1c]
mov al, byte [ebx + 1]
and al, 0xf
cmp al, 2
je 0x42b73f
cmp al, 3
jne 0x42b869
mov edi, dword [esi + 0x514]
mov dword [esp + 0x14], edi
lea eax, [edi + 1]
mov dword [esi + 0x514], eax
call fcn.00407b00
mov dword [esi + edi*4 + 0x518], eax
call fcn.00423150
mov dword [esi + edi*4 + 0x568], eax
mov cl, byte [ebx + 1]
and cl, 0xf
mov dword [esp + 0x58], eax
cmp cl, 2
jne 0x42b7a0
xor eax, eax
mov dword [esp + 0x10], 1
mov al, byte [ebx]
mov ecx, eax
and eax, 0xf
shr ecx, 4
lea edx, [ecx + ecx*8]
add edx, eax
mov eax, dword [0x652130]
mov edi, dword [eax + edx*4 + 0x854]
jmp 0x42b7b4
mov ecx, dword [0x652130]
mov dword [esp + 0x10], 3
mov edi, dword [ecx + 0x798]
movsx ecx, word [edi + 2]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x64], ecx
fild dword [esp + 0x64]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
fmul qword [esp + 0x20]
call fcn.0047ddb0
mov ebx, 0x320
push 0
sub ebx, eax
mov eax, dword [esp + 0x10]
push 0
push 0
movsx edx, word [eax - 8]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x30]
sub ebx, edx
mov edx, dword [esp + 0x64]
push 0
push 0
sub ebx, ecx
mov ecx, dword [esp + 0x34]
push 0
push edi
push eax
push ecx
push edx
call fcn.00423190
mov ecx, dword [0x652130]
mov edx, dword [esp + 0x60]
sub ecx, edx
mov edx, dword [esp + 0x64]
push 0
push 0x3ff00000
add ecx, 0x4b2c
push 0
push ecx
mov ecx, dword [esp + 0x48]
add edx, 0xa
push edx
push ecx
push eax
mov eax, dword [esp + 0x50]
movsx edx, word [eax - 6]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x84]
add edx, ecx
lea ecx, [edx + eax + 1]
mov edx, dword [esp + 0x58]
push ecx
push ebx
mov eax, dword [esi + edx*4 + 0x518]
push eax
call fcn.00408a50
add esp, 0x50
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
sub ecx, 2
add eax, 3
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x4c]
add ebx, 0x1e
add edx, 0xc00
add ecx, 0x48
dec eax
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x4c], eax
jne 0x42b53f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret