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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x19c
mov eax, dword [0x100d5134]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp + 0x34]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x130], ebx
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x11c], 0xffffffff
mov dword [ebp - 0xec], 0xffffffff
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x128], 0xffffffff
mov edi, dword [ebp + 0x20]
cmp eax, 0x4fc
jle 0x1004dda3
mov eax, 0x4fc
mov dword [ebp - 0xe4], eax
mov dword [ebx + 0x46d8], 0
test esi, esi
jle 0x10050617
test eax, eax
jle 0x10050617
cmp eax, 1
jne 0x1004dddf
lea eax, [esi + esi*4]
add eax, eax
cmp dword [ebx + 0x90], eax
jne 0x1004dddf
mov eax, 0xfffffffe
jmp 0x1005061a
mov eax, dword [ebx + 4]
mov edx, dword [ebx]
add eax, ebx
add edx, ebx
mov dword [ebp - 0x13c], eax
cmp dword [ebx + 0x6c], 0x803
mov dword [ebp - 0xdc], edx
jne 0x1004de09
mov dword [ebp - 0xf8], 0
jmp 0x1004de12
mov eax, dword [ebx + 0x74]
mov dword [ebp - 0xf8], eax
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebx + 0xa8]
mov dword [ebp - 0x108], ecx
cmp ecx, eax
jl 0x1004de2b
mov dword [ebp - 0x108], eax
lea eax, [ebp - 0x140]
push eax
push 0x271f
push edx
call fcn.10055d20
fldz
add esp, 0xc
cmp dword [ebx + 0x2c], 7
fst dword [ebp - 0x120]
fld1
fst dword [ebp - 0x124]
fld dword [0x100cca78]
mov dword [ebp - 0x64], 0
jl 0x1004e000
mov esi, dword [ebx + 0x90]
cmp esi, 0x3e80
jl 0x1004dffa
mov edx, dword [ebx + 0x70]
fstp st(0)
imul edx, dword [ebp - 0xd0]
xor ecx, ecx
fld st(1)
test edx, edx
jle 0x1004debf
mov esi, dword [ebp - 0xf0]
fld dword [esi + ecx*4]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x1004dea5
fstp st(1)
fld st(0)
fxch st(1)
fcom st(3)
fnstsw ax
test ah, 0x41
je 0x1004deb2
fstp st(3)
jmp 0x1004deb4
fstp st(0)
inc ecx
cmp ecx, edx
jl 0x1004de93
mov esi, dword [ebx + 0x90]
fxch st(2)
fchs
fcom st(2)
fnstsw ax
test ah, 5
jp 0x1004ded0
fstp st(0)
jmp 0x1004ded2
fstp st(2)
mov ecx, dword [ebp - 0x108]
mov eax, 1
shl eax, cl
mov dword [ebp - 0xec], eax
fidiv dword [ebp - 0xec]
mov dword [ebp - 0x138], 1
fcompp
fnstsw ax
test ah, 1
je 0x1004df08
mov dword [ebp - 0x138], 0
mov eax, dword [ebx + 0x1dd4]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebx + 0x1dd8]
mov dword [ebp - 0xec], eax
lea eax, [ebp - 0x64]
push eax
push dword [ebp - 0x12c]
lea eax, [ebx + 0xbc]
push ecx
push esi
push dword [ebp + 0x30]
mov esi, dword [ebp - 0xd0]
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push esi
push dword [ebp + 0x24]
push edi
push dword [ebp - 0x140]
push eax
call fcn.10058d00
mov eax, dword [ebp - 0x138]
add esp, 0x30
test eax, eax
jne 0x1004dfec
fld dword [0x100cca78]
fcom dword [ebp - 0x40]
mov edi, dword [ebp - 0xf0]
fnstsw ax
test ah, 5
jp 0x1004e02a
push dword [ebx + 0xb4]
fstp st(0)
fld dword [ebx + 0x46d0]
fmul dword [0x100ad494]
push dword [ebx + 0x70]
push esi
push edi
fstp dword [ebp - 0x12c]
call fcn.1004cd50
fcomp dword [ebp - 0x12c]
fnstsw ax
add esp, 0x10
test ah, 5
jp 0x1004dfcb
fld dword [ebx + 0x46d0]
fmul dword [0x100ad494]
fstp dword [ebx + 0x46d0]
fld dword [0x100cca78]
jmp 0x1004e02a
push dword [ebx + 0xb4]
push dword [ebx + 0x70]
push esi
push edi
call fcn.1004cd50
fstp dword [ebx + 0x46d0]
fld dword [0x100cca78]
add esp, 0x10
jmp 0x1004e02a
xor eax, 1
mov dword [ebp - 0x128], eax
jmp 0x1004e090
mov esi, dword [ebp - 0xd0]
cmp dword [ebx + 0x1de0], 0
fstp st(2)
fstp st(0)
je 0x1004e024
lea eax, [ebx + 0xbc]
fstp st(0)
push eax
call fcn.1005ab70
fld dword [0x100cca78]
add esp, 4
mov edi, dword [ebp - 0xf0]
cmp dword [ebp - 0x64], 0
mov dword [ebx + 0x8c], 0xffffffff
je 0x1004e08e
fcomp dword [ebp - 0x40]
fnstsw ax
test ah, 0x41
jp 0x1004e050
mov dword [ebp - 0x128], 1
jmp 0x1004e090
push dword [ebx + 0xb4]
push dword [ebx + 0x70]
push esi
push edi
call fcn.1004cd50
fmul dword [0x100ad4a8]
add esp, 0x10
fcomp dword [ebx + 0x46d0]
fnstsw ax
test ah, 0x41
jne 0x1004e082
mov dword [ebp - 0x128], 1
jmp 0x1004e090
mov dword [ebp - 0x128], 0
jmp 0x1004e090
fstp st(0)
cmp dword [ebp - 0x64], 0
fld dword [0x100cca98]
fst dword [ebp - 0x12c]
mov dword [ebx + 0x46c8], 0
je 0x1004e14d
cmp dword [ebx + 0x7c], 0xfffffc18
jne 0x1004e100
mov eax, dword [ebx + 0x3794]
test eax, eax
jne 0x1004e0c8
fld dword [ebp - 0x50]
jmp 0x1004e0d7
cmp eax, 0x3ea
jne 0x1004e0d4
fld dword [ebp - 0x48]
jmp 0x1004e0d7
fld dword [ebp - 0x4c]
fsubr dword [ebp - 0x124]
sub esp, 8
fmul dword [0x100ccb8c]
faddp st(1)
fstp qword [esp]
call fcn.10092ba0
add esp, 8
call fcn.10081b30
mov dword [ebx + 0x8c], eax
jmp 0x1004e102
fstp st(0)
mov ecx, dword [ebp - 0x44]
cmp ecx, 0xc
jg 0x1004e116
mov dword [ebx + 0x46c8], 0x44d
jmp 0x1004e14f
cmp ecx, 0xe
jg 0x1004e127
mov dword [ebx + 0x46c8], 0x44e
jmp 0x1004e14f
cmp ecx, 0x10
jg 0x1004e138
mov dword [ebx + 0x46c8], 0x44f
jmp 0x1004e14f
xor eax, eax
cmp ecx, 0x12
setg al
add eax, 0x450
mov dword [ebx + 0x46c8], eax
jmp 0x1004e14f
fstp st(0)
cmp dword [ebx + 0x70], 2
jne 0x1004e179
cmp dword [ebx + 0x78], 1
je 0x1004e179
lea eax, [ebx + 0x37b4]
push eax
push dword [ebx + 0x90]
push esi
push dword [ebp - 0xf0]
call fcn.1004cef0
add esp, 0x10
jmp 0x1004e17f
fld dword [ebp - 0x120]
push dword [ebp - 0xe4]
push esi
push ebx
call fcn.100514f0
mov esi, dword [ebx + 0x90]
mov ecx, eax
mov edi, dword [ebp - 0xd0]
mov eax, esi
cdq
add esp, 0xc
idiv edi
mov edx, dword [ebx + 0x94]
mov dword [ebx + 0xa0], ecx
mov dword [ebp - 0x118], eax
test edx, edx
jne 0x1004e2bc
lea eax, [esi + esi*2]
shl eax, 2
cdq
idiv edi
mov edi, dword [ebp - 0xe4]
mov esi, eax
lea eax, [ecx + ecx*2]
shl eax, 2
cdq
and edx, 7
lea ecx, [edx + eax]
mov eax, esi
cdq
sub eax, edx
sar ecx, 3
sar eax, 1
add eax, ecx
cdq
idiv esi
cmp eax, edi
jge 0x1004e1f7
mov edi, eax
mov dword [ebp - 0xe4], eax
jmp 0x1004e1fd
mov dword [ebp - 0xe4], edi
mov ecx, edi
mov eax, 0x2aaaaaab
imul ecx, esi
shl ecx, 3
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [ebx + 0xa0], ecx
cmp edi, 1
jge 0x1004e2b4
mov edi, dword [ebp - 0x118]
mov dword [ebp - 0xe4], 1
mov esi, dword [ebx + 0x37a0]
fstp st(0)
mov ecx, dword [ebx + 0x3790]
test esi, esi
jne 0x1004e24b
mov esi, 0x44d
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xec], 0
test ecx, ecx
jne 0x1004e268
mov ecx, 0x3e8
cmp edi, 0x64
jle 0x1004e272
mov ecx, 0x3ea
cmp edi, 0x19
jne 0x10050522
cmp ecx, 0x3e8
je 0x1004e29e
mov edi, 0x32
mov dword [ebp - 0xe8], 1
cmp ecx, 0x3e8
jne 0x10050585
cmp esi, 0x44f
jle 0x100505af
mov esi, 0x44f
jmp 0x100505af
mov edx, dword [ebx + 0x94]
jmp 0x1004e2c2
mov edi, dword [ebp - 0xe4]
cmp edi, 3
mov edi, dword [ebp - 0x118]
jb 0x1004e234
lea eax, [edi + edi*2]
shl eax, 3
cmp ecx, eax
jl 0x1004e234
mov eax, edi
imul eax, dword [ebp - 0xe4]
cmp edi, 0x32
jge 0x1004e304
cmp eax, 0x12c
jl 0x1004e234
cmp ecx, 0x960
jl 0x1004e234
push dword [ebx + 0x28]
mov edi, dword [ebx + 0x70]
push dword [ebx + 0x2c]
shl eax, 3
push 0
push edx
push dword [ebp - 0x118]
mov dword [ebp - 0x104], eax
push edi
push ecx
call fcn.1004cc60
mov dword [ebp - 0xcc], eax
add esp, 0x1c
mov eax, dword [ebx + 0x7c]
cmp eax, 0xbb9
jne 0x1004e340
mov esi, 0x7f
jmp 0x1004e385
cmp eax, 0xbba
jne 0x1004e34b
xor esi, esi
jmp 0x1004e385
mov eax, dword [ebx + 0x8c]
mov ecx, dword [ebx + 0x6c]
test eax, eax
js 0x1004e375
imul esi, eax, 0x147
sar esi, 8
cmp ecx, 0x801
jne 0x1004e385
cmp esi, 0x73
jl 0x1004e385
mov esi, 0x73
jmp 0x1004e385
lea esi, [ecx - 0x800]
neg esi
sbb esi, esi
and esi, 0xffffffbd
add esi, 0x73
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0xe8], eax
cmp eax, 0xfffffc18
je 0x1004e3a2
cmp edi, 2
jne 0x1004e3a2
lea edx, [ebx + 0x3770]
jmp 0x1004e3e5
lea edx, [ebx + 0x3770]
cmp edi, 2
jne 0x1004e3dd
mov eax, esi
imul eax, esi
imul ecx, eax, 0x7d0
mov eax, dword [edx]
sub eax, edi
sar ecx, 0xe
neg eax
sbb eax, eax
and eax, 0x7d0
add eax, 0x3e80
add ecx, eax
xor eax, eax
cmp dword [ebp - 0xcc], ecx
setg al
inc eax
jmp 0x1004e3df
mov eax, edi
mov dword [ebp - 0xe8], eax
mov dword [edx], eax
mov eax, dword [ebx + 0x90]
cdq
idiv dword [ebp - 0xd0]
push dword [ebx + 0x28]
push dword [ebx + 0x2c]
push 0
push dword [ebx + 0x94]
push eax
push dword [ebp - 0xe8]
push dword [ebx + 0xa0]
call fcn.1004cc60
add esp, 0x1c
mov dword [ebp - 0xe8], eax
cmp dword [ebx + 0xb8], 0
je 0x1004e43c
cmp dword [ebp - 0x64], 0
jne 0x1004e43c
cmp dword [ebp - 0x138], 0
jne 0x1004e43c
mov edi, 1
jmp 0x1004e43e
xor edi, edi
cmp dword [ebx + 0x6c], 0x803
mov dword [ebx + 0x38], edi
jne 0x1004e460
fstp st(0)
mov dword [ebx + 0x3790], 0x3ea
mov eax, 0x3ea
jmp 0x1004e5dc
mov eax, dword [ebx + 0x88]
cmp eax, 0xfffffc18
jne 0x1004e591
fld dword [ebp - 0x124]
fsub st(1)
fmul dword [0x100ad4b8]
fxch st(1)
fmul dword [0x100ad4b4]
faddp st(1)
call fcn.10081b30
sub eax, 0x2710
imul eax, esi
imul eax, esi
sar eax, 0xe
cmp dword [ebx + 0x6c], 0x800
lea edx, [eax + 0x2710]
jne 0x1004e4b1
lea edx, [eax + 0x4650]
mov eax, dword [ebx + 0x3794]
cmp eax, 0x3ea
jne 0x1004e4c6
sub edx, 0xfa0
jmp 0x1004e4d0
test eax, eax
jle 0x1004e4d0
add edx, 0xfa0
xor ecx, ecx
cmp dword [ebp - 0xe8], edx
setge cl
cmp dword [ebx + 0x30], 0
lea ecx, [ecx*2 + 0x3e8]
mov dword [ebp - 0xcc], ecx
mov dword [ebx + 0x3790], ecx
je 0x1004e51e
mov eax, 0x80
mov dword [ebp - 0xcc], ecx
sub eax, esi
sar eax, 4
cmp dword [ebx + 0x28], eax
jle 0x1004e51e
mov ecx, 0x3e8
mov dword [ebx + 0x3790], 0x3e8
mov dword [ebp - 0xcc], ecx
test edi, edi
je 0x1004e542
mov dword [ebp - 0xcc], ecx
cmp esi, 0x64
jle 0x1004e542
mov ecx, 0x3e8
mov dword [ebx + 0x3790], 0x3e8
mov dword [ebp - 0xcc], ecx
mov edi, dword [ebx + 0x90]
xor eax, eax
cmp dword [ebp - 0x118], 0x32
setle al
dec eax
lea ecx, [edi*8]
and eax, 0xbb8
add eax, 0x1770
imul eax, dword [ebp - 0xd0]
cdq
idiv ecx
cmp dword [ebp - 0xe4], eax
jge 0x1004e589
mov dword [ebx + 0x3790], 0x3ea
mov eax, 0x3ea
jmp 0x1004e59f
mov eax, dword [ebp - 0xcc]
jmp 0x1004e59f
mov edi, dword [ebx + 0x90]
fstp st(0)
mov dword [ebx + 0x3790], eax
cmp eax, 0x3ea
je 0x1004e5dc
mov dword [ebp - 0xcc], eax
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0xd0], eax
jge 0x1004e5d6
mov dword [ebx + 0x3790], 0x3ea
mov eax, 0x3ea
jmp 0x1004e5dc
mov eax, dword [ebp - 0xcc]
cmp dword [ebx + 0xb0], 0
je 0x1004e5f4
mov dword [ebx + 0x3790], 0x3ea
mov eax, 0x3ea
mov edi, dword [ebx + 0x3794]
mov ecx, eax
test edi, edi
jle 0x1004e67a
cmp eax, 0x3ea
je 0x1004e60f
cmp edi, 0x3ea
je 0x1004e61c
mov ecx, eax
cmp eax, 0x3ea
jne 0x1004e67a
cmp edi, ecx
je 0x1004e67a
xor ecx, ecx
mov dword [ebp - 0x100], 1
cmp eax, 0x3ea
setne cl
mov dword [ebp - 0x10c], ecx
mov ecx, eax
jne 0x1004e67a
mov eax, 0x51eb851f
imul dword [ebx + 0x90]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0xd0], eax
jl 0x1004e66b
mov dword [ebx + 0x3790], edi
mov ecx, edi
mov dword [ebp - 0x154], 1
jmp 0x1004e67a
mov dword [ebp - 0x100], 0
mov ecx, 0x3ea
mov eax, dword [ebx + 0x3770]
mov dword [ebp - 0xe8], eax
cmp eax, 1
jne 0x1004e6b9
cmp dword [ebx + 0x3798], 2
jne 0x1004e6b9
cmp dword [ebx + 0x44], 0
jne 0x1004e6b9
cmp ecx, 0x3ea
je 0x1004e6b9
cmp edi, 0x3ea
je 0x1004e6b9
mov dword [ebx + 0x3770], 2
lea ecx, [eax + 1]
jmp 0x1004e6c1
mov ecx, dword [ebp - 0xe8]
xor eax, eax
mov dword [ebx + 0x44], eax
mov eax, dword [ebx + 0x90]
cdq
idiv dword [ebp - 0xd0]
push dword [ebx + 0x28]
push dword [ebx + 0x2c]
push dword [ebx + 0x3790]
push dword [ebx + 0x94]
push eax
push ecx
push dword [ebx + 0xa0]
call fcn.1004cc60
mov dword [ebp - 0xe8], eax
add esp, 0x1c
mov eax, dword [ebx + 0x3790]
cmp eax, 0x3ea
je 0x1004e753
cmp edi, 0x3ea
jne 0x1004e739
lea eax, [ebp - 0xc8]
push eax
push dword [ebx + 0xb4]
push dword [ebp - 0x13c]
call fcn.10058590
mov eax, dword [ebx + 0x3790]
add esp, 0xc
mov dword [ebp - 0x14c], 1
cmp eax, 0x3ea
je 0x1004e753
cmp dword [ebx + 0x37ac], 0
jne 0x1004e753
cmp dword [ebx + 0x54], 0
je 0x1004e8cc
cmp dword [ebx + 0x70], 2
mov edx, 0x451
jne 0x1004e770
cmp dword [ebx + 0x78], 1
je 0x1004e770
mov edi, 0x100ad410
mov eax, 0x100ad430
jmp 0x1004e77a
mov edi, 0x100ad3d0
mov eax, 0x100ad3f0
mov ecx, dword [edi]
mov dword [ebp - 0xcc], eax
mov eax, dword [eax]
sub ecx, eax
imul ecx, esi
imul ecx, esi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x24], ecx
mov ecx, dword [edi + 4]
mov eax, dword [eax + 4]
sub ecx, eax
imul ecx, esi
imul ecx, esi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x20], ecx
mov ecx, dword [edi + 8]
mov eax, dword [eax + 8]
sub ecx, eax
imul ecx, esi
imul ecx, esi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [edi + 0xc]
mov eax, dword [eax + 0xc]
sub ecx, eax
imul ecx, esi
imul ecx, esi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x18], ecx
mov ecx, dword [edi + 0x10]
mov eax, dword [eax + 0x10]
sub ecx, eax
imul ecx, esi
imul ecx, esi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x14], ecx
mov ecx, dword [edi + 0x14]
mov eax, dword [eax + 0x14]
sub ecx, eax
imul ecx, esi
imul ecx, esi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x10], ecx
mov ecx, dword [edi + 0x18]
mov eax, dword [eax + 0x18]
sub ecx, eax
imul ecx, esi
imul ecx, esi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xc], ecx
mov ecx, dword [edi + 0x1c]
mov edi, dword [ebx + 0x37ac]
mov eax, dword [eax + 0x1c]
sub ecx, eax
imul ecx, esi
imul ecx, esi
sar ecx, 0xe
add ecx, eax
mov dword [ebp - 8], ecx
lea ecx, [ebp - 8]
mov eax, dword [ecx - 4]
mov esi, dword [ecx]
test edi, edi
jne 0x1004e878
cmp dword [ebx + 0x37a4], edx
jl 0x1004e876
sub eax, esi
jmp 0x1004e878
add eax, esi
cmp dword [ebp - 0xe8], eax
jge 0x1004e88c
dec edx
sub ecx, 8
cmp edx, 0x44d
jg 0x1004e861
cmp edx, 0x44e
jne 0x1004e899
mov edx, 0x44f
mov dword [ebx + 0x37a4], edx
mov dword [ebx + 0x37a0], edx
test edi, edi
jne 0x1004e8cc
cmp dword [ebx + 0x3790], 0x3ea
je 0x1004e8cc
cmp dword [ebx + 0x58], edi
jne 0x1004e8cc
cmp edx, 0x44f
jle 0x1004e8cc
mov dword [ebx + 0x37a0], 0x44f
mov eax, dword [ebx + 0x37a0]
mov ecx, dword [ebx + 0x84]
cmp eax, ecx
jle 0x1004e8e4
mov dword [ebx + 0x37a0], ecx
mov eax, ecx
mov esi, dword [ebx + 0x80]
cmp esi, 0xfffffc18
je 0x1004e8fa
mov dword [ebx + 0x37a0], esi
mov eax, esi
mov edi, dword [ebx + 0x3790]
mov ecx, eax
cmp edi, 0x3ea
je 0x1004e928
cmp dword [ebp - 0x104], 0x3a98
jge 0x1004e928
cmp eax, 0x44f
jl 0x1004e922
mov ecx, 0x44f
mov dword [ebx + 0x37a0], ecx
mov edx, dword [ebx + 0x90]
mov eax, ecx
cmp edx, 0x5dc0
jg 0x1004e94f
cmp ecx, 0x450
jle 0x1004e94f
mov dword [ebx + 0x37a0], 0x450
mov eax, 0x450
mov ecx, eax
cmp edx, 0x3e80
jg 0x1004e96f
cmp eax, 0x44f
jle 0x1004e96f
mov dword [ebx + 0x37a0], 0x44f
mov ecx, 0x44f
mov eax, ecx
cmp edx, 0x2ee0
jg 0x1004e990
cmp ecx, 0x44e
jle 0x1004e990
mov dword [ebx + 0x37a0], 0x44e
mov eax, 0x44e
mov ecx, eax
mov dword [ebp - 0xcc], ecx
cmp edx, 0x1f40
jg 0x1004e9c2
mov dword [ebp - 0xcc], eax
cmp eax, 0x44d
jle 0x1004e9c2
mov ecx, 0x44d
mov dword [ebx + 0x37a0], 0x44d
mov dword [ebp - 0xcc], ecx
mov edx, dword [ebx + 0x46c8]
test edx, edx
je 0x1004ea6a
mov dword [ebp - 0xcc], ecx
cmp esi, 0xfffffc18
jne 0x1004ea6a
mov ecx, dword [ebx + 0x3770]
mov esi, dword [ebp - 0xe8]
imul eax, ecx, 0x4650
cmp esi, eax
jg 0x1004ea05
cmp edi, 0x3ea
jne 0x1004ea05
lea ecx, [edi + 0x63]
jmp 0x1004ea40
imul eax, ecx, 0x5dc0
cmp esi, eax
jg 0x1004ea1c
cmp edi, 0x3ea
jne 0x1004ea1c
lea ecx, [edi + 0x64]
jmp 0x1004ea40
imul eax, ecx, 0x7530
cmp esi, eax
jg 0x1004ea2d
mov ecx, 0x44f
jmp 0x1004ea40
imul eax, ecx, 0xabe0
xor ecx, ecx
cmp esi, eax
setg cl
add ecx, 0x450
cmp edx, ecx
jg 0x1004ea46
mov edx, ecx
mov ecx, dword [ebx + 0x37a0]
mov dword [ebx + 0x46c8], edx
mov dword [ebp - 0xcc], ecx
cmp ecx, edx
jl 0x1004ea64
mov ecx, edx
mov dword [ebp - 0xcc], edx
mov dword [ebx + 0x37a0], ecx
cmp dword [ebx + 0x30], 0
mov eax, dword [ebx + 0x34]
mov esi, dword [ebx + 0x28]
mov dword [ebp - 0x144], eax
je 0x1004eb44
test esi, esi
je 0x1004eb44
cmp edi, 0x3ea
je 0x1004eb44
mov edi, ecx
lea eax, [ecx*8 + 0x100ab1ec]
mov ecx, dword [ebp - 0x144]
mov edx, dword [eax - 4]
mov dword [ebp - 0xd4], eax
mov eax, dword [eax]
cmp ecx, 1
jne 0x1004eab7
sub edx, eax
jmp 0x1004eabd
test ecx, ecx
jne 0x1004eabd
add edx, eax
mov dword [ebp - 0xd8], esi
cmp esi, 0x19
jl 0x1004eb34
mov dword [ebp - 0xd8], 0x19
mov ecx, 0x19
mov eax, 0x7d
sub eax, ecx
imul eax, edx
movzx eax, ax
imul ecx, eax, 0x28f
mov eax, 0x7d
sub eax, dword [ebp - 0xd8]
imul eax, edx
sar ecx, 0x10
sar eax, 0x10
imul eax, eax, 0x28f
add ecx, eax
cmp dword [ebp - 0xe8], ecx
jg 0x1004eba6
cmp esi, 5
jle 0x1004eb44
cmp edi, 0x44d
jle 0x1004eb38
mov eax, dword [ebp - 0xd4]
dec edi
mov dword [ebx + 0x37a0], edi
sub eax, 8
jmp 0x1004ea9d
mov ecx, esi
jmp 0x1004ead7
mov eax, dword [ebp - 0xcc]
mov dword [ebx + 0x37a0], eax
xor eax, eax
push dword [ebp - 0x108]
mov dword [ebx + 0x34], eax
push 0xfc4
push dword [ebp - 0xdc]
call fcn.10055d20
mov ecx, dword [ebx + 0x3790]
add esp, 0xc
mov dword [ebp - 0xd4], ecx
cmp ecx, 0x3ea
jne 0x1004eb8c
cmp dword [ebx + 0x37a0], 0x44e
jne 0x1004eb8c
mov dword [ebx + 0x37a0], 0x44f
cmp dword [ebx + 0xb0], 0
je 0x1004ebad
mov dword [ebx + 0x37a0], 0x44d
mov eax, 0x44d
jmp 0x1004ebb3
mov eax, 1
jmp 0x1004eb46
mov eax, dword [ebx + 0x37a0]
mov dword [ebp - 0xd8], eax
cmp ecx, 0x3e8
jne 0x1004ebe3
mov dword [ebp - 0xd4], ecx
cmp eax, 0x44f
jle 0x1004ebe3
mov ecx, 0x3e9
mov dword [ebx + 0x3790], 0x3e9
mov dword [ebp - 0xd4], ecx
cmp ecx, 0x3e9
jne 0x1004ec11
mov esi, ecx
mov dword [ebp - 0xd4], esi
cmp eax, 0x44f
jg 0x1004ec17
mov esi, 0x3e8
mov dword [ebx + 0x3790], 0x3e8
mov dword [ebp - 0xd4], esi
jmp 0x1004ec17
mov esi, dword [ebp - 0xd4]
mov ecx, dword [ebx + 0x90]
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp dword [ebp - 0xd0], edi
jle 0x1004ec3e
cmp esi, 0x3e8
jne 0x1004ecba
lea edx, [ecx + ecx*2]
mov eax, 0x51eb851f
mov dword [ebp - 0x144], edx
imul edx
sar edx, 4
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp dword [ebp - 0xd0], esi
jle 0x1004ed13
cmp dword [ebp - 0xd4], 0x3e8
jne 0x1004ecba
add ecx, ecx
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [ebp - 0xd0]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
mov eax, 0x51eb851f
jne 0x1004eca4
imul dword [ebx + 0x90]
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
jmp 0x1004ecc2
imul dword [ebp - 0x144]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
je 0x1004ecc2
jmp 0x1004ecc0
mov ecx, dword [ebp - 0xd0]
mov esi, edi
mov eax, ecx
mov ecx, dword [ebp - 0x11c]
cdq
idiv esi
cmp ecx, 0xffffffff
je 0x1004ece4
mov dword [ebx + 0x1dd4], ecx
mov ecx, dword [ebp - 0xec]
mov dword [ebx + 0x1dd8], ecx
push dword [ebp + 0x38]
mov edx, dword [ebp - 0xf4]
push dword [ebp - 0x108]
push dword [ebp - 0x154]
push dword [ebp + 0x18]
push edx
push esi
push eax
push dword [ebp - 0xf0]
push ebx
call fcn.1004d640
add esp, 0x24
jmp 0x1005061a
cmp dword [ebx + 0x37a8], 0
je 0x1004ed44
mov dword [ebp - 0x100], 1
mov dword [ebp - 0x10c], 1
mov dword [ebx + 0x37a8], 0
mov dword [ebp - 0x14c], 2
mov eax, dword [ebp - 0xd4]
sub eax, 0x3ea
neg eax
sbb eax, eax
and eax, dword [ebp - 0x100]
mov dword [ebp - 0xd4], eax
je 0x1004ed97
push dword [ebx + 0x3770]
push dword [ebp - 0x118]
push dword [ebx + 0xa0]
push dword [ebp - 0xe4]
call fcn.1004cd80
mov ecx, dword [ebx + 0x90]
add esp, 0x10
mov dword [ebp - 0xe0], eax
neg eax
sbb eax, eax
and dword [ebp - 0xd4], eax
mov eax, dword [ebx + 0xa0]
mov esi, dword [ebp - 0xd0]
imul eax, esi
shl ecx, 3
cdq
idiv ecx
mov ecx, dword [ebp - 0xe4]
mov edi, ecx
sub edi, dword [ebp - 0xe0]
mov dword [ebp - 0x11c], edi
cmp edi, eax
jl 0x1004edca
mov dword [ebp - 0x11c], eax
mov edx, dword [ebp - 0xf4]
lea eax, [ecx - 1]
inc edx
push eax
push edx
lea eax, [ebp - 0x190]
mov dword [ebp - 0xf4], edx
push eax
mov dword [ebp - 0x160], edx
call fcn.10057270
mov edi, dword [ebp - 0xf8]
add esp, 0xc
lea ecx, [esi + edi]
mov esi, dword [ebx + 0x70]
mov eax, esi
imul eax, ecx
shl eax, 2
call fcn.10081b00
mov eax, esi
mov ecx, esp
imul eax, edi
mov dword [ebp - 0xcc], ecx
shl eax, 2
push eax
mov eax, dword [ebx + 0xac]
sub eax, edi
imul eax, esi
add eax, 0xdf2
lea eax, [ebx + eax*4]
push eax
push ecx
call fcn.10082c30
add esp, 0xc
cmp dword [ebx + 0x3790], 0x3ea
jne 0x1004ee55
push 0x3c
call fcn.1005af40
mov esi, eax
add esp, 4
shl esi, 8
jmp 0x1004ee5e
mov eax, dword [ebp - 0x13c]
mov esi, dword [eax + 8]
mov edx, dword [ebx + 0x3778]
sub esi, edx
movzx eax, si
imul ecx, eax, 0x3d7
sar esi, 0x10
imul eax, esi, 0x3d7
sar ecx, 0x10
add ecx, edx
add eax, ecx
mov dword [ebx + 0x3778], eax
sar eax, 8
push eax
call fcn.1005afb0
mov edx, dword [ebx + 0x70]
mov esi, eax
mov edi, dword [ebx + 0x90]
lea eax, [ebx + 0x3780]
mov ecx, edx
mov dword [ebp - 0x110], eax
imul ecx, dword [ebp - 0xf8]
add esp, 4
mov dword [ebp - 0x158], edx
shl ecx, 2
cmp dword [ebx + 0x6c], 0x800
jne 0x1004f1ac
mov eax, dword [ebp - 0xcc]
add eax, ecx
mov dword [ebp - 0x134], eax
movsx eax, si
imul esi, eax, 0x9a7
mov eax, 0x10624dd3
imul edi
mov eax, esi
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cdq
idiv ecx
mov edx, eax
mov eax, 0x10000000
imul ecx, edx, 0x1d7
mov esi, edx
mov dword [ebp - 0x144], edx
sar esi, 0x10
sub eax, ecx
mov ecx, eax
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x194], eax
neg ecx
sar eax, 6
add ecx, ecx
mov dword [ebp - 0xec], eax
mov eax, edx
mov dword [ebp - 0x198], ecx
sar eax, 0xf
inc eax
movzx ecx, dx
movsx edi, cx
sar eax, 1
mov dword [ebp - 0x100], eax
add eax, esi
imul eax, ecx
mov ecx, dword [ebp - 0xec]
movzx edx, dx
imul edx, edi
sar ecx, 0x10
mov dword [ebp - 0x108], ecx
imul edi, esi
mov esi, dword [ebp - 0x108]
sar edx, 0x10
add eax, edx
movsx ebx, ax
mov eax, dword [ebp - 0x144]
imul eax, dword [ebp - 0x100]
lea ecx, [edx + edi]
mov edi, dword [ebp - 0xec]
movzx edx, di
add eax, 0xff800000
add ecx, eax
mov eax, edx
sar ecx, 0xf
inc ecx
imul eax, ebx
sar ecx, 1
imul ecx, edi
sar eax, 0x10
add ecx, eax
mov eax, esi
imul eax, ebx
add ecx, eax
movsx eax, di
mov dword [ebp - 0x148], ecx
mov ecx, edi
sar ecx, 0xf
inc ecx
imul edx, eax
sar ecx, 1
imul ecx, edi
mov edi, dword [ebp - 0x158]
imul esi, eax
sar edx, 0x10
push edi
add ecx, edx
add ecx, esi
mov dword [ebp - 0x144], ecx
push dword [ebp - 0xd0]
mov ebx, dword [ebp - 0x134]
lea eax, [ebp - 0x148]
mov esi, dword [ebp - 0x110]
push ebx
push esi
push eax
lea eax, [ebp - 0x19c]
push eax
push dword [ebp - 0xf0]
call fcn.10051450
add esp, 0x1c
cmp edi, 2
jne 0x1004f03a
push edi
push dword [ebp - 0xd0]
lea eax, [ebx + 4]
push eax
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0x148]
push eax
lea eax, [ebp - 0x19c]
push eax
mov eax, dword [ebp - 0xf0]
add eax, 4
push eax
call fcn.10051450
add esp, 0x1c
mov edi, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0x130]
cmp dword [ebp + 0x38], 0
je 0x1004f0c8
mov edx, dword [ebx + 0x70]
mov eax, edx
imul eax, dword [ebp - 0xf8]
mov ecx, dword [ebx + 0xb4]
imul edx, esi
and ecx, 7
push edx
lea eax, [edi + eax*4]
push eax
push eax
mov eax, dword [ecx*4 + 0x100adde0]
call eax
fcomp dword [0x100ad4bc]
fnstsw ax
add esp, 0xc
test ah, 5
jnp 0x1004f0c8
mov ecx, dword [ebx + 0x70]
mov eax, ecx
imul ecx, dword [ebp - 0xf8]
imul eax, esi
shl eax, 2
push eax
lea eax, [edi + ecx*4]
push 0
push eax
call fcn.100831b0
fld dword [ebp - 0x120]
add esp, 0xc
fst dword [ebx + 0x378c]
fst dword [ebx + 0x3788]
fst dword [ebx + 0x3784]
fstp dword [ebx + 0x3780]
mov edi, dword [ebx + 0x3790]
fld dword [ebp - 0x124]
mov dword [ebp - 0x158], edi
fstp dword [ebp - 0xf0]
cmp edi, 0x3ea
je 0x1004f8f6
mov esi, dword [ebx + 0x70]
mov eax, esi
imul eax, dword [ebp - 0xd0]
mov dword [ebp - 0x134], esi
add eax, eax
call fcn.10081b00
mov esi, dword [ebp - 0x11c]
mov dword [ebp - 0x108], esp
lea esi, [esi*8 - 8]
imul esi, dword [ebp - 0x118]
cmp edi, 0x3e9
jne 0x1004f1d5
push dword [ebx + 0x3770]
imul eax, dword [ebp - 0xd0], 0x32
xor ecx, ecx
push dword [ebx + 0x34]
push dword [ebx + 0x94]
cmp dword [ebx + 0x90], eax
mov eax, dword [ebp - 0xd8]
sete cl
push ecx
push eax
push esi
call fcn.1004ce20
mov edx, dword [ebx + 0x37b0]
add esp, 0x18
mov edi, eax
mov dword [ebx + 0x24], edi
test edx, edx
jne 0x1004f1e0
mov ecx, edi
sub ecx, esi
mov dword [ebp - 0x110], ecx
fild dword [ebp - 0x110]
fmul dword [0x100ad48c]
fmul qword [0x100ad498]
fldl2e
fmulp st(1)
fld st(0)
frndint
fxch st(1)
fsub st(1)
f2xm1
fld1
faddp st(1)
fscale
fstp st(1)
fsubr dword [ebp - 0x124]
fstp dword [ebp - 0xf0]
jmp 0x1004f1e0
mov esi, dword [ebp - 0xd0]
push edi
mov edi, dword [ebp - 0xcc]
push edx
push esi
push eax
lea eax, [edi + ecx]
push eax
push 3
push dword [ebp - 0xf0]
call fcn.1004d170
add esp, 0x1c
jmp 0x1004f04c
mov edx, dword [ebx + 0x37b0]
mov edi, esi
mov dword [ebx + 0x24], esi
mov ecx, dword [ebx + 0x70]
mov esi, ecx
mov eax, dword [ebx + 0x94]
fld dword [ebp - 0x120]
test edx, edx
je 0x1004f366
test eax, eax
je 0x1004f366
cmp dword [ebx + 0xb0], 0
jne 0x1004f366
mov eax, dword [ebx + 0x37a0]
fld st(0)
mov dword [ebp - 0x100], 0x11
cmp eax, 0x44d
jne 0x1004f23d
mov dword [ebp - 0x100], 0xd
mov dword [ebp - 0xfc], 0x1f40
jmp 0x1004f264
mov dword [ebp - 0xfc], 0x3e80
cmp eax, 0x44e
jne 0x1004f264
mov dword [ebp - 0x100], 0xf
mov esi, ecx
mov dword [ebp - 0xfc], 0x2ee0
mov dword [ebp - 0xec], esi
test esi, esi
jle 0x1004f2f5
mov eax, dword [ebx + 0x37b0]
xor esi, esi
fld dword [0x100ad4c0]
mov edi, ecx
fld dword [ebp - 0x12c]
mov ebx, dword [ebp - 0x100]
mov dword [ebp - 0x110], eax
lea ecx, [esi + eax]
mov edx, ebx
fld dword [ecx]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x1004f2be
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x1004f2b8
fcom st(4)
fnstsw ax
test ah, 0x41
jne 0x1004f2c4
jmp 0x1004f2c2
fstp st(0)
fld st(1)
jmp 0x1004f2c4
fstp st(0)
fld st(0)
fmul st(1)
add ecx, 4
faddp st(3)
sub edx, 1
jne 0x1004f299
mov eax, dword [ebp - 0x110]
add esi, 0x54
sub edi, 1
jne 0x1004f294
mov ebx, dword [ebp - 0x130]
fstp st(1)
mov esi, dword [ebp - 0x134]
fstp st(0)
mov dword [ebp - 0xec], esi
mov edi, dword [ebx + 0x24]
fidiv dword [ebp - 0x100]
fimul dword [ebp - 0xec]
fadd dword [0x100cca80]
fimul dword [ebp - 0xfc]
call fcn.10081b30
mov ecx, edi
mov dword [ebp - 0x110], eax
neg ecx
mov eax, 0x55555556
add ecx, ecx
imul ecx
mov eax, dword [ebp - 0x110]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp eax, ecx
jg 0x1004f338
mov eax, ecx
mov ecx, dword [ebx + 0x37a0]
cmp ecx, 0x450
je 0x1004f34e
cmp ecx, 0x451
jne 0x1004f361
lea ecx, [eax + eax*2]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
mov dword [ebx + 0x24], eax
imul eax, dword [ebp - 0xd0], 0x3e8
mov edi, dword [ebx + 0x90]
mov dword [ebx + 8], esi
cdq
idiv edi
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x3770]
mov dword [ebp - 0x110], eax
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0xd8]
cmp eax, 0x44d
jne 0x1004f3a9
mov dword [ebx + 0x1c], 0x1f40
mov esi, 0x1f40
jmp 0x1004f3ca
cmp eax, 0x44e
jne 0x1004f3be
mov dword [ebx + 0x1c], 0x2ee0
mov esi, 0x2ee0
jmp 0x1004f3ca
mov dword [ebx + 0x1c], 0x3e80
mov esi, 0x3e80
mov eax, dword [ebp - 0x158]
sub eax, 0x3e9
neg eax
sbb eax, eax
and eax, 0xffffe0c0
add eax, 0x3e80
mov dword [ebx + 0x18], eax
cmp dword [ebx + 0x3790], 0x3e8
mov dword [ebx + 0x14], 0x3e80
jne 0x1004f455
cmp dword [ebp - 0x118], 0x32
mov eax, dword [ebp - 0x104]
jle 0x1004f419
lea ecx, [eax + eax]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0x1f40
jge 0x1004f437
mov dword [ebx + 0x14], 0x2ee0
cmp esi, 0x2ee0
jbe 0x1004f434
mov esi, 0x2ee0
mov dword [ebx + 0x1c], esi
cmp eax, 0x1b58
jge 0x1004f455
mov dword [ebx + 0x14], 0x1f40
cmp esi, 0x1f40
jbe 0x1004f452
mov esi, 0x1f40
mov dword [ebx + 0x1c], esi
mov edx, dword [ebx + 0x94]
xor eax, eax
test edx, edx
sete al
cmp dword [ebp - 0xd4], 0
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0xe4]
lea ecx, [eax*8 - 8]
mov dword [ebx + 0x40], ecx
mov esi, ecx
je 0x1004f4a8
mov eax, dword [ebp - 0xe0]
cmp eax, 2
jl 0x1004f4a8
shl eax, 3
sub ecx, eax
cmp dword [ebx + 0x3790], 0x3e9
lea esi, [ecx - 1]
mov dword [ebx + 0x40], esi
jne 0x1004f512
add esi, 0xffffffec
mov dword [ebx + 0x40], esi
cmp dword [ebx + 0x3790], 0x3e9
jne 0x1004f512
test edx, edx
jne 0x1004f4d0
mov eax, dword [ebx + 0x24]
imul eax, dword [ebp - 0xd0]
cdq
idiv edi
cmp esi, eax
jl 0x1004f4cb
mov esi, eax
mov dword [ebx + 0x40], esi
jmp 0x1004f512
push dword [ebp - 0x110]
imul ecx, dword [ebp - 0xd0], 0x32
push dword [ebx + 0x34]
mov eax, dword [ebp - 0xd8]
push edx
xor edx, edx
cmp edi, ecx
sete dl
imul esi, edi
push edx
push eax
mov eax, esi
cdq
idiv dword [ebp - 0xd0]
push eax
call fcn.1004ce20
imul eax, dword [ebp - 0xd0]
add esp, 0x18
cdq
idiv edi
mov dword [ebx + 0x40], eax
cmp dword [ebp - 0x14c], 0
fld dword [0x100ad4b0]
fld dword [0x100ad4c4]
fld dword [0x100ad4ac]
je 0x1004f6b8
mov ecx, dword [ebx + 0x70]
mov eax, 0x51eb851f
imul edi
fstp st(0)
fstp st(0)
fstp st(0)
fld dword [ebp - 0x124]
mov eax, dword [ebx + 0xac]
sub eax, dword [ebx + 0x74]
sar edx, 7
mov esi, edx
mov dword [ebp - 0x134], 0
shr esi, 0x1f
add esi, edx
mov edx, dword [ebp - 0x130]
sub eax, esi
add edx, 0x37c8
imul eax, ecx
push edi
lea ebx, [eax*4]
mov eax, dword [ebp - 0x140]
add edx, ebx
push dword [eax + 0x3c]
push ecx
push esi
push dword [eax + 4]
sub esp, 8
fstp dword [esp + 4]
fstp dword [esp]
push edx
push edx
call fcn.1004d920
mov esi, dword [ebp - 0x130]
push ebx
add esi, 0x37c8
push 0
push esi
call fcn.100831b0
mov ebx, dword [ebp - 0x130]
add esp, 0x30
xor ecx, ecx
mov eax, dword [ebx + 0x70]
mov edx, dword [ebx + 0xac]
imul eax, edx
test eax, eax
jle 0x1004f64f
mov edi, dword [ebp - 0x108]
jmp 0x1004f5e0
fld dword [esi]
fmul dword [0x100ad4b0]
fst dword [ebp - 0x104]
fld dword [0x100ad4c4]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x1004f607
fstp st(1)
fstp dword [ebp - 0x104]
jmp 0x1004f624
fstp st(0)
fld dword [0x100ad4ac]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
je 0x1004f622
fstp dword [ebp - 0x104]
jmp 0x1004f624
fstp st(0)
fld dword [ebp - 0x104]
fistp dword [ebp - 0x110]
mov ax, word [ebp - 0x110]
add esi, 4
mov word [edi + ecx*2], ax
inc ecx
mov eax, dword [ebx + 0x70]
mov edx, dword [ebx + 0xac]
imul eax, edx
cmp ecx, eax
jl 0x1004f5e0
push dword [ebp - 0x128]
lea eax, [ebp - 0x134]
push dword [ebp - 0x14c]
lea esi, [ebx + 8]
push eax
push 0
push edx
push dword [ebp - 0x108]
push esi
push dword [ebp - 0x13c]
call fcn.10057710
fld dword [0x100ad4ac]
add esp, 0x20
fld dword [0x100ad4c4]
fld dword [0x100ad4b0]
fxch st(1)
mov dword [ebx + 0x48], 0
mov ecx, dword [ebx + 0x70]
xor edx, edx
mov edi, dword [ebp - 0xd0]
mov eax, ecx
imul eax, edi
test eax, eax
jle 0x1004f746
mov esi, dword [ebp - 0x108]
jmp 0x1004f6c1
fstp st(3)
lea esi, [ebx + 8]
jmp 0x1004f698
fxch st(1)
imul ecx, dword [ebp - 0xf8]
mov eax, dword [ebp - 0xcc]
add ecx, edx
fld dword [eax + ecx*4]
fmulp st(2)
fxch st(1)
fst dword [ebp - 0x104]
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x1004f6f2
fstp st(0)
fstp st(1)
fstp dword [ebp - 0x104]
jmp 0x1004f707
fstp st(1)
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x1004f705
fstp dword [ebp - 0x104]
jmp 0x1004f707
fstp st(0)
fld dword [ebp - 0x104]
fistp dword [ebp - 0x110]
mov ax, word [ebp - 0x110]
fld dword [0x100ad4ac]
fld dword [0x100ad4c4]
fld dword [0x100ad4b0]
mov word [esi + edx*2], ax
inc edx
mov ecx, dword [ebx + 0x70]
mov eax, ecx
imul eax, edi
cmp edx, eax
jl 0x1004f6bf
fstp st(2)
lea esi, [ebx + 8]
fstp st(0)
jmp 0x1004f74a
fstp st(2)
fstp st(1)
push dword [ebp - 0x128]
lea eax, [ebp - 0x15c]
fstp st(0)
push 0
push eax
lea eax, [ebp - 0x190]
push eax
push edi
push dword [ebp - 0x108]
push esi
push dword [ebp - 0x13c]
call fcn.10057710
add esp, 0x20
mov dword [ebp - 0xfc], eax
test eax, eax
jne 0x10050610
mov esi, dword [ebx + 0x3790]
cmp esi, 0x3e8
jne 0x1004f7d3
mov eax, dword [ebx + 0x50]
cmp eax, 0x1f40
jne 0x1004f7ab
mov ecx, 0x44d
mov dword [ebp - 0xd8], ecx
jmp 0x1004f7d9
cmp eax, 0x2ee0
jne 0x1004f7bf
mov ecx, 0x44e
mov dword [ebp - 0xd8], ecx
jmp 0x1004f7d9
cmp eax, 0x3e80
jne 0x1004f7d3
mov ecx, 0x44f
mov dword [ebp - 0xd8], ecx
jmp 0x1004f7d9
mov ecx, dword [ebp - 0xd8]
cmp dword [ebx + 0x60], 0
je 0x1004f7ef
cmp dword [ebx + 0x46d4], 0
jne 0x1004f7ef
mov eax, 1
jmp 0x1004f7f1
xor eax, eax
cmp dword [ebp - 0x15c], 0
mov dword [ebx + 0x48], eax
jne 0x1004f8a9
mov eax, dword [ebx + 0x90]
cdq
idiv edi
xor edx, edx
mov dword [ebx + 0x46d8], 0
cmp eax, 0x190
jge 0x1004f82a
lea ecx, [ecx]
add eax, eax
inc edx
cmp eax, 0x190
jl 0x1004f820
cmp esi, 0x3e8
jne 0x1004f842
add cl, 3
sub dl, 2
shl cl, 5
shl dl, 3
or cl, dl
jmp 0x1004f879
cmp esi, 0x3ea
jne 0x1004f86c
lea eax, [ecx - 0x44e]
test eax, eax
sets cl
dec cl
and cl, al
or cl, 0xfc
shl cl, 2
or cl, dl
shl cl, 3
mov byte [ebp - 0xd8], cl
jmp 0x1004f87f
or cl, 6
sub dl, 2
add cl, cl
or cl, dl
shl cl, 3
mov dword [ebp - 0xd8], ecx
cmp dword [ebx + 0x3770], 2
mov edx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0xd8]
setne cl
dec cl
and cl, 4
or cl, al
mov eax, 1
mov byte [edx - 1], cl
jmp 0x1005061a
test eax, eax
je 0x1004f8f6
push dword [ebx + 0x3770]
push dword [ebp - 0x118]
push dword [ebx + 0xa0]
push dword [ebp - 0xe4]
call fcn.1004cd80
mov ecx, eax
mov dword [ebp - 0x10c], 0
xor eax, eax
mov dword [ebp - 0xe0], ecx
add esp, 0x10
mov dword [ebx + 0x37a8], 1
test ecx, ecx
setne al
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd8]
mov ecx, 0x15
add eax, 0xfffffbb3
cmp eax, 4
ja case.0x1004f90b.1105
jmp dword [eax*4 + 0x10050634]
mov ecx, 0xd
jmp case.0x1004f90b.1105
mov ecx, 0x11
jmp case.0x1004f90b.1105
mov ecx, 0x13
mov esi, dword [ebp - 0xdc]
push ecx
push 0x271c
push esi
call fcn.10055d20
push dword [ebx + 0x3770]
push 0x2718
push esi
call fcn.10055d20
push 0xffffffffffffffff
push 0xfa2
push esi
call fcn.10055d20
add esp, 0x24
cmp dword [ebx + 0x3790], 0x3e8
je 0x1004fa0e
push 0
push 0xfa6
push esi
call fcn.10055d20
add esp, 0xc
cmp dword [ebx + 0x4c], 0
je 0x1004f986
fld dword [ebp - 0x120]
jmp 0x1004f98c
fld dword [0x100ccaf8]
call fcn.10081b30
push eax
push 0x2712
push esi
call fcn.10055d20
add esp, 0xc
cmp dword [ebx + 0x94], 0
je 0x1004fa0e
cmp dword [ebx + 0x3790], 0x3e9
jne 0x1004f9dc
mov eax, dword [ebx + 0xa0]
sub eax, dword [ebx + 0x24]
push eax
push 0xfa2
push esi
call fcn.10055d20
push 0
push 0xfb4
push esi
call fcn.10055d20
add esp, 0x18
jmp 0x1004fa0e
push 1
push 0xfa6
push esi
call fcn.10055d20
push dword [ebx + 0x98]
push 0xfb4
push esi
call fcn.10055d20
push dword [ebx + 0xa0]
push 0xfa2
push esi
call fcn.10055d20
add esp, 0x24
mov edi, dword [ebx + 0x70]
mov eax, 0x51eb851f
mov ecx, edi
imul ecx, dword [ebx + 0x90]
imul ecx
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
shl esi, 2
mov eax, esi
call fcn.10081b00
mov edx, dword [ebx + 0x3790]
mov ecx, edi
mov dword [ebp - 0x11c], esp
cmp edx, 0x3e8
je 0x1004fa9b
mov eax, dword [ebx + 0x3794]
cmp edx, eax
je 0x1004fa9b
test eax, eax
jle 0x1004fa9b
mov ecx, dword [ebx + 0xac]
mov eax, 0x51eb851f
imul dword [ebx + 0x90]
push esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
sub ecx, dword [ebp - 0xf8]
imul ecx, edi
add ecx, 0xdf2
lea eax, [ebx + ecx*4]
push eax
push dword [ebp - 0x11c]
call fcn.10082c30
mov ecx, dword [ebx + 0x70]
add esp, 0xc
mov edx, dword [ebx + 0xac]
lea esi, [ebx + 0x37c8]
mov edi, dword [ebp - 0xd0]
mov eax, edx
sub eax, edi
sub eax, dword [ebp - 0xf8]
imul eax, ecx
test eax, eax
jle 0x1004fb13
imul ecx, edi
shl eax, 2
push eax
add ecx, 0xdf2
lea eax, [ebx + ecx*4]
push eax
push esi
call fcn.10082c30
mov edx, dword [ebp - 0xf8]
mov eax, dword [ebx + 0x70]
add edx, edi
imul eax, edx
mov esi, dword [ebp - 0xcc]
shl eax, 2
push eax
mov eax, dword [ebx + 0xac]
sub eax, edi
sub eax, dword [ebp - 0xf8]
imul eax, dword [ebx + 0x70]
push esi
add eax, 0xdf2
lea eax, [ebx + eax*4]
push eax
call fcn.10082c30
add esp, 0x18
jmp 0x1004fb42
mov eax, ecx
imul eax, edx
shl eax, 2
push eax
mov eax, edi
sub eax, edx
add eax, dword [ebp - 0xf8]
imul eax, ecx
mov ecx, dword [ebp - 0xcc]
lea eax, [ecx + eax*4]
push eax
push esi
call fcn.10082c30
mov esi, dword [ebp - 0xcc]
add esp, 0xc
fld dword [ebx + 0x377c]
fld dword [ebp - 0x124]
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x1004fb6a
fld dword [ebp - 0xf0]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x1004fba4
fstp st(1)
jmp 0x1004fb72
fstp st(0)
fld dword [ebp - 0xf0]
push dword [ebx + 0x90]
mov eax, dword [ebp - 0x140]
push dword [eax + 0x3c]
push dword [ebx + 0x70]
push edi
push dword [eax + 4]
sub esp, 8
fstp dword [esp + 4]
fstp dword [esp]
push esi
push esi
call fcn.1004d920
fld dword [ebp - 0x124]
add esp, 0x24
jmp 0x1004fba8
fstp st(2)
fstp st(1)
cmp dword [ebx + 0x3790], 0x3e9
fld dword [ebp - 0xf0]
fstp dword [ebx + 0x377c]
jne 0x1004fbc9
cmp dword [ebx + 0x3770], 1
jne 0x1004fc0b
mov ecx, dword [ebp - 0xe8]
cmp ecx, 0x7d00
jle 0x1004fbe0
mov dword [ebx + 0x5c], 0x4000
jmp 0x1004fc0b
cmp ecx, 0x3e80
jge 0x1004fbf1
mov dword [ebx + 0x5c], 0
jmp 0x1004fc0b
lea eax, [ecx - 0x7d00]
add ecx, 0xffffc950
shl eax, 0xb
cdq
idiv ecx
add eax, 0x4000
mov dword [ebx + 0x5c], eax
cmp dword [ebx + 0x37b0], 0
jne 0x1004fd28
cmp dword [ebx + 0x70], 2
jne 0x1004fd28
movzx edi, word [ebx + 0x3774]
mov eax, 0x4000
cmp di, ax
jl 0x1004fc3c
cmp dword [ebx + 0x5c], eax
jge 0x1004fd28
mov eax, 0xbb80
mov ecx, dword [ebp - 0x140]
cdq
idiv dword [ebx + 0x90]
mov esi, dword [ecx + 0x3c]
mov dword [ebp - 0xec], eax
mov eax, dword [ecx + 4]
cdq
idiv dword [ebp - 0xec]
movsx ecx, di
xor edi, edi
mov dword [ebp - 0x110], ecx
mov edx, eax
fild dword [ebp - 0x110]
fld dword [0x100cca5c]
fmul st(1), st(0)
fld st(2)
fsubrp st(2)
fimul dword [ebx + 0x5c]
fsubr st(2)
test edx, edx
jle 0x1004fcdc
mov eax, dword [ebp - 0xec]
mov edi, edx
fld dword [ebp - 0x12c]
lea ecx, [eax*4]
mov eax, dword [ebp - 0xcc]
fld dword [esi]
add esi, ecx
fmul st(0), st(0)
fld dword [eax]
fld dword [eax + 4]
fld st(6)
fsub st(3)
fmul st(6)
fxch st(3)
fmul st(5)
faddp st(3)
fld st(1)
fsub st(1)
fmul st(4)
fmulp st(3)
fxch st(1)
fsub st(2)
fstp dword [eax]
faddp st(1)
fstp dword [eax + 4]
add eax, 8
sub edx, 1
jne 0x1004fca4
fstp st(2)
fstp st(2)
jmp 0x1004fce6
fstp st(1)
fstp st(1)
fld dword [ebp - 0x12c]
mov ecx, dword [ebp - 0xd0]
cmp edi, ecx
jge 0x1004fd1b
mov eax, dword [ebp - 0xcc]
sub ecx, edi
lea eax, [eax + edi*8]
fld dword [eax]
fld dword [eax + 4]
fld st(1)
fsub st(1)
fmul st(3)
fmul st(4)
fsub st(2), st(0)
fxch st(2)
fstp dword [eax]
faddp st(1)
fstp dword [eax + 4]
add eax, 8
sub ecx, 1
jne 0x1004fcfb
mov ax, word [ebx + 0x5c]
fstp st(1)
mov word [ebx + 0x3774], ax
mov edx, dword [ebx + 0x3790]
fstp st(0)
mov esi, dword [ebp - 0xe4]
cmp edx, 0x3ea
je 0x1004fe84
bsr eax, dword [ebp - 0x174]
xor ecx, ecx
cmp edx, 0x3e9
setne cl
dec ecx
and ecx, 0x14
sub ecx, eax
mov eax, dword [ebp - 0x17c]
add eax, 0x10
add ecx, eax
lea eax, [esi*8 - 8]
cmp ecx, eax
jg 0x1004fe84
cmp edx, 0x3e9
jne 0x1004fd93
push 0xc
push dword [ebp - 0xd4]
lea eax, [ebp - 0x190]
push eax
call fcn.10056f60
add esp, 0xc
cmp dword [ebp - 0xd4], 0
je 0x1004fe8e
push 1
push dword [ebp - 0x10c]
lea eax, [ebp - 0x190]
push eax
call fcn.10056f60
bsr eax, dword [ebp - 0x174]
mov ecx, dword [ebp - 0x17c]
add esp, 0xc
mov edx, dword [ebx + 0x3790]
sub ecx, eax
mov eax, esi
cmp edx, 0x3e9
jne 0x1004fddb
add ecx, 0x11
jmp 0x1004fdde
add ecx, 6
sar ecx, 3
sub eax, ecx
dec eax
cmp eax, dword [ebp - 0xe0]
jge 0x1004fdf4
mov dword [ebp - 0xe0], eax
jmp 0x1004fdfa
mov eax, dword [ebp - 0xe0]
cmp eax, 2
jl 0x1004fe0d
cmp eax, 0x101
jle 0x1004fe18
mov eax, 0x101
jmp 0x1004fe12
mov eax, 2
mov dword [ebp - 0xe0], eax
cmp edx, 0x3e9
jne 0x1004fe38
add eax, 0xfffffffe
push 0x100
push eax
lea eax, [ebp - 0x190]
push eax
call fcn.10057460
add esp, 0xc
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebx + 0x3790]
lea edi, [eax - 0x3ea]
neg edi
sbb edi, edi
and edi, 0x11
cmp eax, 0x3e8
jne 0x1004fea2
bsr eax, dword [ebp - 0x174]
mov esi, dword [ebp - 0x17c]
sub esi, eax
lea eax, [ebp - 0x190]
add esi, 6
sar esi, 3
push eax
mov dword [ebp - 0xfc], esi
call fcn.100570a0
add esp, 4
jmp 0x1004feb5
mov dword [ebp - 0xd4], 0
xor ecx, ecx
mov dword [ebx + 0x37a8], 0
mov dword [ebp - 0xe0], ecx
jmp 0x1004fe3e
sub esi, ecx
lea eax, [ebp - 0x190]
dec esi
push esi
push eax
call fcn.10057430
add esp, 8
cmp dword [ebp - 0xd4], 0
jne 0x1004fecb
mov eax, dword [ebx + 0x3790]
cmp eax, 0x3e8
je 0x1004fee8
lea eax, [ebp - 0x64]
push eax
push 0x2726
push dword [ebp - 0xdc]
call fcn.10055d20
mov eax, dword [ebx + 0x3790]
add esp, 0xc
cmp eax, 0x3e9
jne 0x1004ff1b
mov eax, dword [ebx + 0x64]
mov dword [ebp - 0x114], eax
mov eax, dword [ebx + 0x68]
mov dword [ebp - 0x110], eax
lea eax, [ebp - 0x114]
push eax
push 0x272c
push dword [ebp - 0xdc]
call fcn.10055d20
add esp, 0xc
cmp dword [ebp - 0xd4], 0
je 0x1004ffd8
cmp dword [ebp - 0x10c], 0
je 0x1004ffd8
push 0
push 0x271a
push dword [ebp - 0xdc]
call fcn.10055d20
push 0
push 0xfa6
push dword [ebp - 0xdc]
call fcn.10055d20
push 0xffffffffffffffff
push 0xfa2
push dword [ebp - 0xdc]
call fcn.10055d20
mov eax, dword [ebp - 0xf4]
push 0
push dword [ebp - 0xe0]
add eax, esi
push eax
mov eax, 0x51eb851f
imul dword [ebx + 0x90]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push dword [ebp - 0xcc]
push dword [ebp - 0xdc]
call fcn.10052ac0
add esp, 0x3c
test eax, eax
js 0x10050610
lea eax, [ebp - 0x150]
push eax
push 0xfbf
push dword [ebp - 0xdc]
call fcn.10055d20
push 0xfbc
push dword [ebp - 0xdc]
call fcn.10055d20
add esp, 0x14
push edi
mov edi, dword [ebp - 0xdc]
push 0x271a
push edi
call fcn.10055d20
mov ecx, dword [ebx + 0x3790]
add esp, 0xc
cmp ecx, 0x3e8
je 0x10050144
mov eax, dword [ebx + 0x3794]
cmp ecx, eax
je 0x10050055
test eax, eax
jle 0x10050055
push 0xfbc
push edi
call fcn.10055d20
push 0
push 2
lea eax, [ebp - 0xf8]
push eax
mov eax, 0x51eb851f
imul dword [ebx + 0x90]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push dword [ebp - 0x11c]
push edi
call fcn.10052ac0
push 0
push 0x2712
push edi
call fcn.10055d20
add esp, 0x2c
bsr eax, dword [ebp - 0x174]
mov ecx, dword [ebp - 0x17c]
sub ecx, eax
lea eax, [esi*8]
dec ecx
cmp ecx, eax
jg 0x10050144
cmp dword [ebp - 0xd4], 0
je 0x100500b3
cmp dword [ebp - 0x10c], 0
je 0x100500b3
cmp dword [ebx + 0x3790], 0x3e9
jne 0x100500b3
cmp dword [ebx + 0x94], 0
je 0x100500b3
mov eax, dword [ebx + 0xa0]
sub eax, dword [ebx + 0x24]
push eax
push 0xfa2
push edi
call fcn.10055d20
add esp, 0xc
push dword [ebx + 0x94]
push 0xfa6
push edi
call fcn.10055d20
lea eax, [ebp - 0x190]
push eax
push esi
push 0
push dword [ebp - 0xd0]
push dword [ebp - 0xcc]
push edi
call fcn.10052ac0
mov ecx, eax
add esp, 0x24
mov dword [ebp - 0xfc], ecx
test ecx, ecx
js 0x10050610
mov edi, dword [ebp - 0xd4]
test edi, edi
je 0x10050296
mov eax, dword [ebp - 0x10c]
test eax, eax
je 0x10050150
cmp dword [ebx + 0x3790], 0x3e9
jne 0x10050150
cmp dword [ebx + 0x94], 0
je 0x10050150
mov edx, dword [ebp - 0xf4]
push dword [ebp - 0xe0]
lea eax, [esi + edx]
push eax
lea eax, [edx + ecx]
push eax
call fcn.10082c30
add esp, 0xc
add esi, dword [ebp - 0xe0]
jmp 0x1005014a
mov edi, dword [ebp - 0xd4]
mov eax, dword [ebp - 0x10c]
test edi, edi
je 0x10050296
test eax, eax
jne 0x10050296
mov ecx, dword [ebx + 0x90]
mov eax, 0x51eb851f
imul ecx
mov eax, 0x51eb851f
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
imul ecx
push 0xfbc
push dword [ebp - 0xdc]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x110], eax
call fcn.10055d20
push 0
push 0x271a
push dword [ebp - 0xdc]
call fcn.10055d20
push 0
push 0x2712
push dword [ebp - 0xdc]
call fcn.10055d20
push 0
push 0xfa6
push dword [ebp - 0xdc]
call fcn.10055d20
push 0xffffffffffffffff
push 0xfa2
push dword [ebp - 0xdc]
call fcn.10055d20
add esp, 0x38
cmp dword [ebx + 0x3790], 0x3e9
jne 0x1005020d
mov eax, dword [ebp - 0xfc]
mov esi, eax
push eax
lea eax, [ebp - 0x190]
push eax
call fcn.10057430
add esp, 8
mov ecx, dword [ebp - 0x110]
lea eax, [ebp - 0xf8]
push 0
push 2
push eax
mov eax, dword [ebp - 0xd0]
sub eax, ecx
sub eax, edi
imul eax, dword [ebx + 0x70]
push ecx
mov ecx, dword [ebp - 0xcc]
lea eax, [ecx + eax*4]
push eax
push dword [ebp - 0xdc]
call fcn.10052ac0
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xcc]
add eax, esi
mov esi, dword [ebp - 0xdc]
push 0
push dword [ebp - 0xe0]
push eax
mov eax, dword [ebp - 0xd0]
sub eax, edi
imul eax, dword [ebx + 0x70]
push edi
lea eax, [ecx + eax*4]
push eax
push esi
call fcn.10052ac0
add esp, 0x30
test eax, eax
js 0x10050610
lea eax, [ebp - 0x150]
push eax
push 0xfbf
push esi
call fcn.10055d20
add esp, 0xc
mov eax, dword [ebx + 0x90]
cdq
idiv dword [ebp - 0xd0]
dec dword [ebp - 0xf4]
xor edx, edx
mov ecx, dword [ebx + 0x3790]
cmp eax, 0x190
jge 0x100502c2
add eax, eax
inc edx
cmp eax, 0x190
jl 0x100502b8
cmp ecx, 0x3e8
jne 0x100502e0
mov cl, byte [ebp - 0xd8]
sub dl, 2
add cl, 3
shl dl, 3
shl cl, 5
or cl, dl
jmp 0x10050315
cmp ecx, 0x3ea
jne 0x10050302
mov eax, dword [ebp - 0xd8]
add eax, 0xfffffbb2
sets cl
dec cl
and cl, al
or cl, 0xfc
shl cl, 2
jmp 0x10050310
mov cl, byte [ebp - 0xd8]
or cl, 6
add cl, cl
sub dl, 2
or cl, dl
shl cl, 3
cmp dword [ebx + 0x3770], 2
mov edx, dword [ebp - 0xf4]
setne al
dec al
and al, 4
or al, cl
mov byte [edx], al
mov eax, dword [ebp - 0x174]
xor eax, dword [ebp - 0x150]
cmp dword [ebp - 0x154], 0
mov dword [ebx + 0x46d8], eax
mov eax, 0x3ea
jne 0x10050353
mov eax, dword [ebx + 0x3790]
mov dword [ebx + 0x3794], eax
cmp dword [ebx + 0xb8], 0
mov edi, dword [ebx + 0x3770]
mov eax, dword [ebp - 0xd0]
mov dword [ebx + 0x3798], edi
mov dword [ebx + 0x379c], eax
mov dword [ebx + 0x37ac], 0
je 0x100504ba
cmp dword [ebp - 0x64], 0
jne 0x1005039b
cmp dword [ebp - 0x138], 0
je 0x100504ba
cmp dword [ebp - 0x128], 0
jne 0x100504ba
mov esi, dword [ebx + 0x90]
imul eax, eax, 0x7d0
cdq
idiv esi
add dword [ebx + 0x46cc], eax
mov ecx, dword [ebx + 0x46cc]
cmp ecx, 0x190
jle 0x10050479
cmp ecx, 0x4b0
jg 0x1005046f
mov eax, esi
mov ecx, dword [ebx + 0x3790]
cdq
idiv dword [ebp - 0xd0]
xor edx, edx
mov dword [ebx + 0x46d8], 0
cmp eax, 0x190
jge 0x1005040a
lea ecx, [ecx]
add eax, eax
inc edx
cmp eax, 0x190
jl 0x10050400
mov eax, dword [ebp - 0xd8]
cmp ecx, 0x3e8
jne 0x10050427
sub dl, 2
add al, 3
shl dl, 3
shl al, 5
or dl, al
jmp 0x10050451
cmp ecx, 0x3ea
jne 0x10050445
add eax, 0xfffffbb2
sets cl
dec cl
and cl, al
or cl, 0xfc
shl cl, 2
or dl, cl
jmp 0x1005044e
or al, 6
sub dl, 2
add al, al
or dl, al
shl dl, 3
cmp edi, 2
setne al
dec al
and al, 4
or al, dl
mov edx, dword [ebp - 0xf4]
mov byte [edx], al
mov eax, 1
jmp 0x1005061a
mov dword [ebx + 0x46cc], 0x190
mov edx, dword [ebp - 0xf4]
bsr eax, dword [ebp - 0x174]
mov esi, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0x17c]
sub ecx, eax
dec ecx
lea eax, [esi*8 - 8]
cmp ecx, eax
jle 0x100504c6
mov eax, dword [ebp - 0x160]
mov byte [eax], 0
mov eax, 1
mov dword [ebx + 0x46d8], 0
jmp 0x100504f2
mov dword [ebx + 0x46cc], 0
jmp 0x1005047f
cmp dword [ebx + 0x3790], 0x3e8
mov eax, dword [ebp - 0xfc]
jne 0x100504f2
cmp dword [ebp - 0xd4], 0
jne 0x100504f2
cmp eax, 2
jle 0x100504f2
cmp byte [edx + eax], 0
jne 0x100504f2
dec eax
cmp eax, 2
jg 0x100504e6
mov ecx, dword [ebp - 0xe0]
inc ecx
add eax, ecx
cmp dword [ebx + 0x94], 0
jne 0x1005061a
push esi
push eax
push edx
call fcn.100586a0
add esp, 0xc
test eax, eax
jne 0x10050610
mov eax, esi
jmp 0x1005061a
cmp edi, 0x10
jg 0x1004e292
cmp dword [ebp + 0x18], 1
je 0x10050560
cmp ecx, 0x3e8
jne 0x1005053e
cmp edi, 0xa
jne 0x10050560
mov eax, 0x32
mov dword [ebp - 0xe8], 3
cdq
idiv edi
mov edi, 0x32
mov dword [ebp - 0xec], eax
jmp 0x1004e292
xor eax, eax
mov ecx, 0x3e8
cmp edi, 0xc
setle al
sub edi, 0xc
neg edi
mov dword [ebp - 0xe8], eax
sbb edi, edi
and edi, 0xfffffff7
add edi, 0x19
jmp 0x1004e29e
cmp ecx, 0x3ea
jne 0x1005059a
cmp esi, 0x44e
jne 0x100505af
lea esi, [ecx + 0x63]
jmp 0x100505af
cmp ecx, 0x3e9
jne 0x100505af
cmp esi, 0x450
jg 0x100505af
mov esi, 0x450
push dword [ebx + 0x3770]
push esi
push edi
push ecx
call fcn.1004daf0
mov edx, dword [ebp - 0xf4]
add esp, 0x10
mov ecx, dword [ebp - 0xe8]
or al, cl
mov esi, dword [ebp - 0xe4]
mov byte [edx], al
mov eax, 1
cmp eax, ecx
sbb eax, eax
neg eax
inc eax
cmp esi, eax
ja 0x100505e8
mov esi, eax
cmp ecx, 3
jne 0x100505f6
mov ecx, dword [ebp - 0xec]
mov byte [edx + 1], cl
cmp dword [ebx + 0x94], 0
jne 0x1005061a
push esi
push eax
push edx
call fcn.100586a0
add esp, 0xc
test eax, eax
mov eax, esi
je 0x1005061a
mov eax, 0xfffffffd
jmp 0x1005061a
or eax, 0xffffffff
lea esp, [ebp - 0x1a8]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10080e96
mov esp, ebp
pop ebp
ret