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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x178
test eax, eax
nop
push ebx
push esi
push edi
push ebp
mov ebp, ecx
jl 0x4e2b5e
mov eax, dword [esp + 0x190]
test eax, eax
jl 0x4e2b5e
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x18c]
cmp ecx, eax
jg 0x4e2b5e
mov ecx, dword [esp + 0x190]
cmp ecx, eax
jg 0x4e2b5e
mov ecx, dword [esp + 0x194]
test ecx, ecx
jl 0x4e2b5e
mov ecx, dword [esp + 0x198]
test ecx, ecx
jl 0x4e2b5e
mov ecx, dword [esp + 0x194]
cmp ecx, eax
jg 0x4e2b5e
mov ecx, dword [esp + 0x198]
cmp ecx, eax
jg 0x4e2b5e
mov eax, dword [esp + 0x1a0]
cmp eax, 0x3f800000
jle 0x4e0ac3
mov edx, dword [esp + 0x190]
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x160], ecx
mov dword [esp + 0x158], edx
mov ecx, dword [esp + 0x194]
mov dword [esp + 0x15c], eax
mov dword [esp + 0x164], ecx
mov eax, dword [esp + 0x164]
mov ebx, dword [esp + 0x160]
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x158]
cmp eax, ecx
jge 0x4e09b9
xchg ecx, eax
cmp ebx, edx
jge 0x4e09bf
xchg edx, ebx
sub eax, ecx
sub ebx, edx
cmp eax, ebx
jl 0x4e09cc
sub eax, ebx
xchg ebx, eax
jmp 0x4e09ce
sub ebx, eax
and eax, 0xff
shl ebx, 4
mov eax, dword [eax*4 + 0x6a0768]
add eax, ebx
mov dword [esp + 0x154], eax
fild dword [esp + 0x154]
fld dword [esp + 0x1a0]
fmul dword [0x553a40]
fxch st(1)
fcompp
fnstsw ax
test ah, 1
je 0x4e0a64
mov ecx, dword [esp + 0x1ac]
test ecx, ecx
je 0x4e0a16
mov dword [ecx], 0
mov eax, dword [esp + 0x1a8]
cmp eax, 1
jne 0x4e0a5a
mov eax, dword [esp + 0x19c]
mov cl, byte [eax + 0x154]
test cl, cl
jne 0x4e0a48
lea ecx, [eax + 0xa4]
call fcn.004d3ee0
mov eax, 1
jmp 0x4e2b97
mov ecx, dword [esp + 0x19c]
add ecx, 0xd8
call fcn.004d3ee0
mov eax, 1
jmp 0x4e2b97
mov eax, dword [esp + 0x19c]
mov ecx, eax
mov ebx, dword [eax]
call dword [ebx + 0xf4]
fcomp dword [0x553a38]
fnstsw ax
test ah, 0x40
je 0x4e0ac3
mov ecx, dword [esp + 0x1ac]
test ecx, ecx
je 0x4e0a93
mov dword [ecx], 0
mov eax, dword [esp + 0x1a8]
cmp eax, 1
jne 0x4e2b95
mov eax, dword [esp + 0x19c]
mov cl, byte [eax + 0x154]
test cl, cl
jne 0x4e2b83
lea ecx, [eax + 0xa4]
jmp 0x4e2b90
mov eax, dword [esp + 0x19c]
mov dword [ebp + 0x11dc44], eax
mov edx, dword [eax + 8]
mov eax, dword [ebp + 0x11dc40]
movsx ecx, word [edx + 0x66]
mov edx, dword [eax + 0x54]
mov eax, dword [esp + 0x19c]
mov ecx, dword [edx + ecx*4]
mov dword [ebp + 0x11dc50], ecx
mov edx, dword [eax + 0x14c]
mov dword [ebp + 0x11dc5c], edx
mov edx, dword [esp + 0x1c0]
mov ecx, dword [eax + 0x150]
mov eax, dword [esp + 0x1c4]
mov dword [ebp + 0x11dc60], ecx
mov dword [ebp + 0x11dce0], edx
xor edx, edx
mov dword [ebp + 0x11dcdc], eax
mov dword [ebp + 0x11dce8], edx
cmp dword [0x567e00], edx
je 0x4e0ba1
mov eax, dword [ebp + 0x11dc3c]
cmp dword [eax + 0xc], edx
jle 0x4e0b8c
xor ecx, ecx
xor esi, esi
mov edi, dword [ebp + 0x11dc3c]
xor ebx, ebx
mov eax, dword [edi + 0x8d8c]
cmp dword [edi + 8], esi
mov eax, dword [eax + ecx]
jle 0x4e0b7d
mov dword [esp + 0x14c], ecx
mov cl, byte [eax + 0xa]
add eax, 0x18
and cl, 0x70
inc ebx
mov byte [eax - 0xe], cl
mov edi, dword [ebp + 0x11dc3c]
cmp dword [edi + 8], ebx
jg 0x4e0b5e
mov ecx, dword [esp + 0x14c]
mov eax, dword [ebp + 0x11dc3c]
add ecx, 4
inc edx
cmp dword [eax + 0xc], edx
jg 0x4e0b41
mov eax, dword [0x5681d8]
mov ecx, eax
mov ebx, dword [eax]
call dword [ebx + 0x28]
push 2
mov ebx, dword [eax]
mov ecx, eax
call dword [ebx + 0x20]
mov edx, dword [esp + 0x1a4]
mov ecx, dword [esp + 0x194]
shl ecx, 2
mov eax, dword [esp + 0x198]
shl eax, 2
mov dword [ebp + 0x11dc4c], edx
mov dword [ebp + 0x11dc84], ecx
mov dword [ebp + 0x11dc88], eax
add ecx, 3
add eax, 3
mov dword [ebp + 0x11dc8c], ecx
mov dword [ebp + 0x11dc90], eax
cmp edx, 0xffffffff
je 0x4e0c6f
push edx
mov ecx, dword [ebp + 0x11dc40]
call fcn.004d0430
mov esi, eax
test esi, esi
je 0x4e0c65
fld dword [esi + 0x38]
mov eax, dword [esi + 8]
fsub dword [eax + 0x30]
fmul dword [0x553a4c]
call fcn.005351bc
mov dword [ebp + 0x11dc84], eax
mov eax, dword [esi + 8]
fld dword [esi + 0x3c]
fsub dword [eax + 0x34]
fmul dword [0x553a4c]
call fcn.005351bc
mov dword [ebp + 0x11dc88], eax
mov eax, dword [esi + 8]
fld dword [eax + 0x30]
fadd dword [esi + 0x38]
fmul dword [0x553a4c]
call fcn.005351bc
mov dword [ebp + 0x11dc8c], eax
mov eax, dword [esi + 8]
fld dword [eax + 0x34]
fadd dword [esi + 0x3c]
fmul dword [0x553a4c]
call fcn.005351bc
mov dword [ebp + 0x11dc90], eax
jmp 0x4e0c6f
mov dword [ebp + 0x11dc4c], 0xffffffff
mov eax, dword [esp + 0x1b4]
mov ecx, dword [ebp + 0x11dcf4]
push ecx
mov dword [ebp + 0x11dc78], eax
mov dword [ebp + 0x11dc74], 1
mov ecx, dword [ebp + 0x11dc44]
call fcn.004b0d30
mov dword [ebp + 0x11dc48], eax
mov eax, dword [ebp + 0x11dc44]
mov ecx, dword [eax + 0x144]
cmp ecx, 5
jl 0x4e0dd5
xor esi, esi
mov ecx, dword [eax + 0x58]
cmp ecx, esi
jle 0x4e0dd5
mov edi, dword [ebp + 0x11dc44]
mov eax, dword [edi + 0x60]
add edi, 0x54
dec eax
cmp eax, esi
jge 0x4e0d36
lea eax, [esi*4 + 4]
push eax
call fcn.0052f700
mov dword [esp + 0x98], eax
add esp, 4
test eax, eax
je 0x4e0d36
xor ebx, ebx
mov eax, dword [edi + 0xc]
cmp eax, ebx
jle 0x4e0d1c
xor ecx, ecx
mov eax, dword [esp + 0x94]
lea edx, [esi + 1]
cmp ebx, edx
jge 0x4e0d1c
mov edx, dword [edi]
add ecx, 4
add eax, 4
inc ebx
mov edx, dword [edx + ecx - 4]
mov dword [eax - 4], edx
mov edx, dword [edi + 0xc]
cmp edx, ebx
jg 0x4e0cfe
mov eax, dword [edi]
push eax
call fcn.0052f720
mov eax, dword [esp + 0x98]
add esp, 4
lea edx, [esi + 1]
mov dword [edi], eax
mov dword [edi + 0xc], edx
mov eax, dword [edi]
mov ecx, dword [eax + esi*4]
push ecx
mov ecx, dword [ebp + 0x11dc40]
call fcn.004d0430
mov edi, eax
test edi, edi
je 0x4e0dc5
mov eax, dword [ebp + 0x11dc44]
mov ecx, dword [edi + 4]
cmp dword [eax + 4], ecx
je 0x4e0dc5
mov ebx, dword [edi]
mov ecx, edi
call dword [ebx + 0x128]
mov dword [esp + 0xbc], 0
mov ecx, edi
mov byte [esp + 0xbc], al
call dword [ebx + 0xec]
fstp dword [esp + 0x148]
mov eax, dword [edi + 0x130]
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x144], eax
test ecx, ecx
jne 0x4e0db7
mov eax, dword [esp + 0x148]
test eax, 0x7fffffff
jne 0x4e0db7
mov eax, dword [esp + 0x144]
test eax, eax
jle 0x4e0dc5
mov eax, dword [ebp + 0x11dcf4]
mov ecx, edi
push eax
call fcn.004b0d30
inc esi
mov eax, dword [ebp + 0x11dc44]
cmp dword [eax + 0x58], esi
jg 0x4e0cc0
mov esi, dword [ebp + 0x11dc44]
push 1
sub esp, 8
nop
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x14c], eax
mov dword [esp + 0x148], ecx
fld dword [esp + 0x14c]
fstp qword [esp]
call fcn.005351f0
fadd dword [0x553a44]
fld dword [esp + 0x148]
add esp, 8
sub esp, 4
fxch st(1)
fstp dword [esp]
sub esp, 8
fstp qword [esp]
call fcn.005351f0
fadd dword [0x553a44]
add esp, 8
mov ecx, ebp
sub esp, 4
fstp dword [esp]
push esi
call fcn.004e2c20
test eax, eax
je 0x4e0e5a
lea esi, [ebp + 0x11dc54]
mov dword [ebp + 0x11dc58], 0x3f000000
mov dword [esi], 0x3f000000
jmp 0x4e0ea5
mov eax, dword [esp + 0x19c]
lea esi, [ebp + 0x11dc54]
sub esp, 8
fld dword [eax + 0x38]
fstp qword [esp]
call fcn.005351f0
mov ecx, dword [esp + 0x1a4]
add esp, 8
sub esp, 8
fsubr dword [ecx + 0x38]
fstp dword [esi]
fld dword [ecx + 0x3c]
fstp qword [esp]
call fcn.005351f0
mov ecx, dword [esp + 0x1a4]
add esp, 8
fsubr dword [ecx + 0x3c]
fstp dword [ebp + 0x11dc58]
lea ebx, [ebp + 0x11dc94]
mov edi, dword [ebp + 0x11dc44]
fld dword [edi + 0x38]
mov eax, dword [edi + 8]
fsub dword [eax + 0x30]
fmul dword [0x553a4c]
call fcn.005351bc
mov dword [ebx], eax
test eax, eax
jge 0x4e0ed1
mov dword [ebx], 0
fld dword [edi + 0x3c]
mov eax, dword [edi + 8]
fsub dword [eax + 0x34]
fmul dword [0x553a4c]
call fcn.005351bc
mov dword [ebp + 0x11dc98], eax
test eax, eax
jge 0x4e0ef9
mov dword [ebp + 0x11dc98], 0
mov eax, dword [edi + 8]
fld dword [eax + 0x30]
fadd dword [edi + 0x38]
fmul dword [0x553a4c]
call fcn.005351bc
mov ecx, dword [ebp + 4]
mov dword [ebp + 0x11dc9c], eax
shl ecx, 2
cmp ecx, eax
jge 0x4e0f23
mov dword [ebp + 0x11dc9c], ecx
mov eax, dword [edi + 8]
fld dword [eax + 0x34]
fadd dword [edi + 0x3c]
fmul dword [0x553a4c]
call fcn.005351bc
mov ecx, dword [ebp + 8]
mov dword [ebp + 0x11dca0], eax
shl ecx, 2
cmp ecx, eax
jge 0x4e0f4d
mov dword [ebp + 0x11dca0], ecx
lea eax, [ebp + 0x11dc9c]
mov ecx, edi
push eax
push ebx
call fcn.00405880
mov eax, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
mov dword [ebp + 0x11dc7c], eax
mov dword [ebp + 0x11dc80], ecx
mov dword [ebp + 0x11dcc8], 0xffffffff
mov al, byte [ebp + 0x11dcd8]
cmp al, 0xf0
jb 0x4e0fa3
lea edi, [ebp + 0xc]
mov eax, 0xffffffff
mov byte [ebp + 0x11dcd8], 0
mov ecx, 0x3f80
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
jmp 0x4e0fab
add al, 8
mov byte [ebp + 0x11dcd8], al
mov eax, dword [esp + 0x198]
mov ecx, dword [esp + 0x194]
mov edx, dword [esp + 0x190]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x138], ecx
mov dword [esp + 0x12c], edx
mov dword [esp + 0x130], eax
mov dword [ebp + 0x11dc2c], 1
mov dword [ebp + 0x11dc38], 0
mov eax, dword [esp + 0x138]
mov ebx, dword [esp + 0x134]
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x12c]
cmp eax, ecx
jge 0x4e1018
xchg ecx, eax
cmp ebx, edx
jge 0x4e101e
xchg edx, ebx
sub eax, ecx
sub ebx, edx
cmp eax, ebx
jl 0x4e102b
sub eax, ebx
xchg ebx, eax
jmp 0x4e102d
sub ebx, eax
and eax, 0xff
shl ebx, 4
mov eax, dword [eax*4 + 0x6a0768]
add eax, ebx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x18c]
shl ecx, 8
mov edx, dword [esp + 0x18c]
sub ecx, edx
mov ebx, dword [esp + 0x190]
add ecx, ebx
mov dword [ebp + ecx*4 + 0xfe10], eax
mov cl, dl
mov byte [ebp + 0x4f61d], bl
mov al, bl
mov edx, dword [esp + 0x90]
mov byte [ebp + 0x4f61c], cl
mov dword [ebp + 0x4f620], edx
mov byte [ebp + 0x11dc30], cl
fild dword [esp + 0x1bc]
mov byte [ebp + 0x11dc31], al
mov dword [ebp + 0x11dc34], edx
mov dword [ebp + 0x4f618], 0x88ca6c00
fcomp dword [esp + 0x1a0]
fnstsw ax
test ah, 0x41
jne 0x4e10c9
mov eax, dword [esp + 0x1bc]
shl eax, 4
jmp 0x4e10db
fld dword [esp + 0x1a0]
fmul dword [0x553a40]
call fcn.005351bc
mov edi, dword [ebp + 0x11dc44]
mov dword [esp + 0xb8], eax
mov eax, dword [edi + 8]
fld dword [eax + 0x30]
fld dword [eax + 0x34]
fld dword [esi]
fsub st(2)
fld dword [0x553a50]
fadd st(1)
call fcn.005351bc
fxch st(2)
fadd dword [esi]
sub eax, 0x64
mov dword [esp + 0x54], eax
fld dword [0x553a50]
fadd st(1)
call fcn.005351bc
sub eax, 0x64
mov dword [esp + 0x4c], eax
fld dword [ebp + 0x11dc58]
fsub st(2)
fld dword [0x553a50]
fadd st(1)
call fcn.005351bc
fxch st(2)
fadd dword [ebp + 0x11dc58]
sub eax, 0x64
mov dword [esp + 0x50], eax
fld dword [0x553a50]
fadd st(1)
call fcn.005351bc
fxch st(3)
fadd dword [0x553a54]
sub eax, 0x64
mov dword [esp + 0x48], eax
fmul dword [0x553a4c]
call fcn.005351bc
fadd dword [0x553a54]
sub eax, 0x190
mov dword [esp + 0x40], eax
fmul dword [0x553a4c]
call fcn.005351bc
fadd dword [0x553a54]
sub eax, 0x190
mov dword [esp + 0x38], eax
fmul dword [0x553a4c]
call fcn.005351bc
fadd dword [0x553a54]
sub eax, 0x190
mov dword [esp + 0x3c], eax
fmul dword [0x553a4c]
call fcn.005351bc
sub eax, 0x190
mov ecx, dword [esp + 0x194]
mov edx, dword [esp + 0x18c]
mov ebx, dword [esp + 0x190]
sub ecx, edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x68], 0
mov eax, dword [esp + 0x198]
sub eax, ebx
imul ecx, ecx
imul eax, eax
mov dword [esp + 0x124], ecx
mov dword [esp + 0x120], eax
fild dword [esp + 0x124]
fild dword [esp + 0x120]
faddp st(1)
fsqrt
fmul qword [0x553a58]
call fcn.005351bc
cdq
and edx, 0xf
mov ecx, 0x64
add eax, edx
sar eax, 4
mov esi, eax
imul eax, dword [0x568164]
cdq
idiv ecx
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x70], eax
cmp word [ecx + 0x4a], 0
jne 0x4e1251
cmp eax, 0x64
jle 0x4e1251
mov dword [esp + 0x70], 0x64
call fcn.00463fa0
cmp eax, 1
jne 0x4e1276
shl esi, 2
mov ebx, 0x64
lea eax, [esi + esi*4]
lea ecx, [eax + eax*4]
lea edx, [ecx + ecx*4]
lea eax, [edx + edx*4]
cdq
idiv ebx
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 0x11dc2c]
test eax, eax
jle 0x4e2302
mov eax, dword [0x568164]
cmp eax, 0xffffffff
je 0x4e12aa
mov eax, dword [esp + 0x1b0]
cmp eax, 1
jne 0x4e12aa
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x70]
cmp ecx, eax
jl 0x4e2302
mov eax, dword [esp + 0x68]
cmp eax, 0x4e20
jg 0x4e2302
xor eax, eax
mov ecx, dword [0x567e00]
mov al, byte [ebp + 0x4f61c]
mov dword [esp + 0x178], eax
xor eax, eax
mov al, byte [ebp + 0x4f61d]
test ecx, ecx
mov dword [esp + 0x17c], eax
je 0x4e1306
mov eax, dword [ebp + 0x11dc3c]
mov edx, dword [esp + 0x17c]
mov ecx, dword [eax + 0x8d8c]
mov eax, dword [esp + 0x178]
mov ebx, dword [ecx + edx*4]
lea ecx, [eax + eax*2]
mov byte [ebx + ecx*8 + 0xa], 0x81
mov eax, dword [esp + 0x198]
mov ecx, dword [esp + 0x194]
mov edx, dword [esp + 0x17c]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x11c]
mov ebx, dword [esp + 0x118]
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x110]
cmp eax, ecx
jge 0x4e135f
xchg ecx, eax
cmp ebx, edx
jge 0x4e1365
xchg edx, ebx
sub eax, ecx
sub ebx, edx
cmp eax, ebx
jl 0x4e1372
sub eax, ebx
xchg ebx, eax
jmp 0x4e1374
sub ebx, eax
and eax, 0xff
shl ebx, 4
mov eax, dword [eax*4 + 0x6a0768]
add eax, ebx
mov dword [esp + 0x16c], eax
xor eax, eax
mov bl, byte [ebp + 0x4f61d]
mov al, byte [ebp + 0x4f61c]
mov ecx, dword [esp + 0x198]
mov dword [esp + 0x170], eax
xor eax, eax
mov al, bl
mov edx, dword [esp + 0x170]
sub ecx, eax
mov dword [esp + 0x174], eax
imul ecx, ecx
mov eax, dword [esp + 0x194]
mov dword [esp + 0x10c], ecx
fild dword [esp + 0x10c]
sub eax, edx
imul eax, eax
mov dword [esp + 0x108], eax
fild dword [esp + 0x108]
faddp st(1)
fsqrt
fmul qword [0x553a58]
call fcn.005351bc
mov ecx, dword [ebp + 0x11dcc8]
cmp ecx, 0xffffffff
je 0x4e1405
cmp eax, ecx
jge 0x4e140b
mov dword [ebp + 0x11dcc8], eax
mov ecx, dword [esp + 0xb8]
cmp ecx, eax
jg 0x4e2437
mov ecx, dword [ebp + 0x11dc34]
cmp ecx, eax
jle 0x4e143c
mov cl, byte [ebp + 0x4f61c]
mov byte [ebp + 0x11dc31], bl
mov byte [ebp + 0x11dc30], cl
mov dword [ebp + 0x11dc34], eax
inc dword [ebp + 0x11dc38]
mov eax, dword [ebp + 0x11dc2c]
mov cl, byte [ebp + eax*8 + 0x4f614]
dec eax
mov edi, 1
mov byte [ebp + 0x4f61c], cl
mov byte [esp + 0x17], cl
mov dl, byte [ebp + eax*8 + 0x4f61d]
mov byte [ebp + 0x4f61d], dl
mov byte [esp + 0x16], dl
cdq
mov esi, dword [ebp + eax*8 + 0x4f620]
mov dword [ebp + 0x4f620], esi
mov dword [ebp + 0x11dc2c], eax
sub eax, edx
sar eax, 1
cmp eax, edi
jle 0x4e14f6
lea ecx, [edi*2]
mov eax, dword [ebp + 0x11dc2c]
cmp eax, ecx
jle 0x4e14b0
mov eax, dword [ebp + ecx*8 + 0x4f618]
mov edx, dword [ebp + ecx*8 + 0x4f620]
cmp edx, eax
jge 0x4e14b0
inc ecx
mov eax, dword [ebp + ecx*8 + 0x4f618]
cmp eax, esi
jg 0x4e14f6
mov edx, dword [ebp + ecx*8 + 0x4f614]
mov ebx, dword [ebp + ecx*8 + 0x4f618]
lea eax, [ebp + ecx*8 + 0x4f614]
lea eax, [ebp + edi*8]
mov edi, ecx
mov dword [eax + 0x4f614], edx
mov dword [eax + 0x4f618], ebx
add eax, 0x4f614
mov eax, dword [ebp + 0x11dc2c]
cdq
sub eax, edx
sar eax, 1
cmp eax, ecx
jg 0x4e148c
cmp edi, 1
je 0x4e1518
mov al, byte [esp + 0x17]
mov cl, byte [esp + 0x16]
mov byte [ebp + edi*8 + 0x4f614], al
mov byte [ebp + edi*8 + 0x4f615], cl
mov dword [ebp + edi*8 + 0x4f618], esi
mov ecx, dword [esp + 0x178]
mov eax, dword [esp + 0x178]
mov dword [esp + 0x44], 0
mov dword [esp + 0x6c], 1
shl ecx, 8
sub ecx, eax
mov eax, dword [esp + 0x17c]
add eax, ecx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x44]
cmp eax, 7
ja case.default.0x4e1555
jmp dword [eax*4 + 0x4e2ba4]
mov eax, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x170]
sub ecx, eax
mov edx, dword [esp + 0x174]
sub edx, eax
mov dword [esp + 0x170], ecx
mov dword [esp + 0x174], edx
jmp case.default.0x4e1555
mov eax, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x170]
add ecx, eax
mov dword [esp + 0x170], ecx
jmp case.default.0x4e1555
mov eax, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x170]
add ecx, eax
mov dword [esp + 0x170], ecx
jmp case.default.0x4e1555
mov eax, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x174]
add ecx, eax
jmp 0x4e1623
mov eax, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x174]
add ecx, eax
jmp 0x4e1623
mov eax, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x170]
sub ecx, eax
mov dword [esp + 0x170], ecx
jmp case.default.0x4e1555
mov eax, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x170]
sub ecx, eax
mov dword [esp + 0x170], ecx
jmp case.default.0x4e1555
mov eax, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x174]
sub ecx, eax
mov dword [esp + 0x174], ecx
mov eax, dword [esp + 0x64]
mov dl, byte [ebp + 0x11dcd8]
mov cl, byte [ebp + eax + 0xc]
mov al, cl
and al, 0xf8
cmp al, dl
jne 0x4e1655
and ecx, 7
mov eax, dword [esp + 0x6c]
test dword [ecx*4 + str.8p], eax
je 0x4e1667
jmp 0x4e22c6
mov eax, dword [esp + 0x6c]
mov ecx, dword [0x567e30]
test eax, ecx
jne 0x4e22c6
mov eax, dword [esp + 0x170]
test eax, eax
jl 0x4e22c6
mov eax, dword [esp + 0x174]
test eax, eax
jl 0x4e22c6
mov eax, dword [esp + 0x170]
mov ecx, dword [ebp + 4]
cmp ecx, eax
jle 0x4e22c6
mov eax, dword [esp + 0x174]
mov ecx, dword [ebp + 8]
cmp ecx, eax
jle 0x4e22c6
mov eax, dword [esp + 0x170]
mov ecx, dword [ebp + 0x11dc7c]
cmp ecx, eax
jne 0x4e16cf
mov eax, dword [esp + 0x174]
mov ecx, dword [ebp + 0x11dc80]
cmp ecx, eax
je 0x4e22c6
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x17c]
sub ecx, eax
mov edx, dword [esp + 0x178]
imul ecx, ecx
mov eax, dword [esp + 0x170]
mov dword [esp + 0x104], ecx
fild dword [esp + 0x104]
sub eax, edx
imul eax, eax
mov dword [esp + 0x100], eax
fild dword [esp + 0x100]
faddp st(1)
fsqrt
fmul qword [0x553a58]
call fcn.005351bc
mov edi, eax
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x198]
mov edx, dword [esp + 0x17c]
mov esi, dword [ebp + ecx*4 + 0xfe10]
mov dword [esp + 0xf8], eax
mov ecx, dword [esp + 0x194]
mov eax, dword [esp + 0x178]
mov dword [esp + 0xfc], ecx
mov dword [esp + 0xf0], edx
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0xfc]
mov ebx, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0xf0]
cmp eax, ecx
jge 0x4e1786
xchg ecx, eax
cmp ebx, edx
jge 0x4e178c
xchg edx, ebx
sub eax, ecx
sub ebx, edx
cmp eax, ebx
jl 0x4e1799
sub eax, ebx
xchg ebx, eax
jmp 0x4e179b
sub ebx, eax
and eax, 0xff
shl ebx, 4
mov eax, dword [eax*4 + 0x6a0768]
add eax, ebx
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x198]
mov ecx, dword [esp + 0x194]
mov edx, dword [esp + 0x174]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0xec], ecx
mov dword [esp + 0xe0], edx
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xec]
mov ebx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xe0]
cmp eax, ecx
jge 0x4e180c
xchg ecx, eax
cmp ebx, edx
jge 0x4e1812
xchg edx, ebx
sub eax, ecx
sub ebx, edx
cmp eax, ebx
jl 0x4e181f
sub eax, ebx
xchg ebx, eax
jmp 0x4e1821
sub ebx, eax
and eax, 0xff
shl ebx, 4
mov eax, dword [eax*4 + 0x6a0768]
add eax, ebx
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
sub eax, ecx
mov edx, dword [esp + 0x170]
add eax, esi
mov ecx, dword [esp + 0x170]
shl ecx, 8
add eax, edi
sub ecx, edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x174]
mov bl, byte [ebp + 0x11dcd8]
add eax, ecx
mov dword [esp + 0x60], eax
mov al, byte [ebp + eax + 0xc]
mov cl, al
and cl, 0xf8
cmp cl, bl
jne 0x4e1888
and al, 7
jmp 0x4e188a
mov al, 0xff
cmp al, 8
jae 0x4e18a3
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x20]
cmp dword [ebp + eax*4 + 0xfe10], ecx
jle 0x4e22c6
mov eax, dword [esp + 0x44]
cmp eax, 7
ja case.default.0x4e18ac
jmp dword [eax*4 + 0x4e2bc4]
mov eax, dword [esp + 0x170]
mov ecx, dword [esp + 0x174]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], eax
lea edx, [ebx + eax*4]
lea edi, [esi + ecx*4]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x170]
mov dword [esp + 0x2c], ecx
nop
lea ebx, [esi + eax*4]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x18], ebx
nop
lea ebx, [esi + ecx*4]
jmp 0x4e1c62
mov eax, dword [esp + 0x170]
mov ecx, dword [esp + 0x50]
add eax, dword [esp + 0x54]
add ecx, dword [esp + 0x174]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x178]
add eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x170]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x17c]
add eax, dword [esp + 0x48]
lea edx, [edx + ebx*4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x174]
jmp 0x4e1c3f
mov eax, dword [esp + 0x178]
mov ecx, dword [esp + 0x50]
add eax, dword [esp + 0x54]
add ecx, dword [esp + 0x174]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x178]
add eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x178]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x17c]
add eax, dword [esp + 0x48]
lea edx, [edx + ebx*4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x174]
lea edi, [esi + eax*4]
mov esi, dword [esp + 0x38]
lea eax, [esi + ebx*4]
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x17c]
mov dword [esp + 0x18], eax
lea eax, [esi + ebx*4]
mov dword [esp + 0x24], eax
jmp 0x4e1c66
mov eax, dword [esp + 0x178]
mov ecx, dword [esp + 0x50]
add eax, dword [esp + 0x54]
add ecx, dword [esp + 0x174]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x170]
add eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x178]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x17c]
add eax, dword [esp + 0x48]
lea edx, [edx + ebx*4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x174]
lea edi, [esi + eax*4]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x170]
jmp 0x4e1c4d
mov eax, dword [esp + 0x178]
mov ecx, dword [esp + 0x50]
add eax, dword [esp + 0x54]
add ecx, dword [esp + 0x17c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x170]
add eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x178]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x17c]
add eax, dword [esp + 0x48]
lea edx, [edx + ebx*4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x17c]
lea edi, [esi + eax*4]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x170]
jmp 0x4e1c4d
mov eax, dword [esp + 0x178]
mov ecx, dword [esp + 0x50]
add eax, dword [esp + 0x54]
add ecx, dword [esp + 0x17c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x170]
add eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x178]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x174]
add eax, dword [esp + 0x48]
lea edx, [edx + ebx*4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x17c]
lea edi, [esi + eax*4]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x170]
lea ebx, [esi + eax*4]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x174]
mov dword [esp + 0x18], ebx
jmp 0x4e1c5f
mov eax, dword [esp + 0x178]
mov ecx, dword [esp + 0x50]
add eax, dword [esp + 0x54]
add ecx, dword [esp + 0x17c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x178]
add eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x178]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x174]
add eax, dword [esp + 0x48]
lea edx, [edx + ebx*4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x17c]
lea edi, [esi + eax*4]
mov esi, dword [esp + 0x38]
lea eax, [esi + ebx*4]
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x174]
mov dword [esp + 0x18], eax
lea eax, [esi + ebx*4]
mov dword [esp + 0x24], eax
jmp 0x4e1c66
mov eax, dword [esp + 0x170]
mov ecx, dword [esp + 0x50]
add eax, dword [esp + 0x54]
add ecx, dword [esp + 0x17c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x178]
add eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x170]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x174]
add eax, dword [esp + 0x48]
lea edx, [edx + ebx*4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x17c]
lea edi, [esi + eax*4]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x178]
lea ebx, [esi + eax*4]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x174]
mov dword [esp + 0x18], ebx
jmp 0x4e1c5f
mov eax, dword [esp + 0x170]
mov ecx, dword [esp + 0x50]
add eax, dword [esp + 0x54]
add ecx, dword [esp + 0x17c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x178]
add eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x170]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x17c]
add eax, dword [esp + 0x48]
lea edx, [edx + ebx*4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x17c]
lea edi, [esi + eax*4]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x178]
lea ebx, [esi + eax*4]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x18], ebx
lea ebx, [esi + eax*4]
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x1c]
test eax, eax
jge 0x4e1c73
inc eax
mov dword [esp + 0x1c], eax
test ecx, ecx
jge 0x4e1c78
inc ecx
test edx, edx
jge 0x4e1c7d
inc edx
test edi, edi
jge 0x4e1c82
inc edi
xor eax, eax
mov ebx, dword [ebp + 0x11dc3c]
mov al, byte [esp + 0x30]
mov esi, dword [ebx + 8]
cmp eax, esi
jge 0x4e1df6
xor eax, eax
mov esi, dword [ebx + 0xc]
mov al, byte [esp + 0x2c]
cmp eax, esi
jge 0x4e1df6
cmp al, cl
jb 0x4e1df2
xor eax, eax
mov al, byte [esp + 0x1c]
lea eax, [eax + eax*2]
shl eax, 3
mov dword [esp + 0xd4], eax
xor eax, eax
mov ebx, dword [ebp + 0x11dc3c]
mov al, cl
mov dword [esp + 0xb4], eax
mov eax, dword [ebx + 0x8d8c]
mov ebx, dword [esp + 0xb4]
mov esi, dword [eax + ebx*4]
mov eax, dword [esp + 0xd4]
add esi, eax
mov bl, byte [esp + 0x1c]
mov al, byte [esp + 0x30]
mov byte [esp + 0x11], bl
cmp al, bl
jb 0x4e1de4
xor eax, eax
mov ebx, dword [ebp + 0x11dc7c]
mov al, byte [esp + 0x11]
cmp eax, ebx
jne 0x4e1d28
mov ebx, dword [esp + 0xb4]
mov eax, dword [ebp + 0x11dc80]
cmp eax, ebx
je 0x4e1dcb
mov al, byte [esi + 5]
mov ebx, dword [ebp + 0x11dc50]
mov byte [esp + 0x8c], al
and al, 0x1f
mov byte [esp + 0x8c], al
xor eax, eax
mov al, byte [esp + 0x8c]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0xb0], ebx
mov ebx, dword [ebp + 0x11dc5c]
cmp ebx, eax
je 0x4e1dcb
mov ebx, dword [ebp + 0x11dc60]
cmp ebx, eax
je 0x4e1dcb
fld dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
fstp qword [esp + 0x180]
test eax, eax
jg 0x4e1dcb
mov al, byte [esi + 6]
and eax, 0xf
je 0x4e1df6
fldz
fcomp qword [esp + 0x180]
lea eax, [eax + eax*4]
mov ebx, dword [ebp + 0x11dc3c]
lea eax, [eax + eax*8]
shl eax, 5
movsx eax, word [eax + ebx + 0x3928]
mov ebx, dword [ebp + 0x11dc50]
mov eax, dword [ebx + eax*4]
mov dword [esp + 0xcc], eax
fnstsw ax
test ah, 1
jne 0x4e1dcb
mov eax, dword [esp + 0xcc]
test eax, eax
jle 0x4e1df6
add esi, 0x18
mov al, byte [esp + 0x11]
inc al
mov bl, byte [esp + 0x30]
mov byte [esp + 0x11], al
cmp al, bl
jbe 0x4e1d03
inc cl
mov al, byte [esp + 0x2c]
cmp cl, al
jbe 0x4e1cc5
mov al, 1
jmp 0x4e1df8
mov al, 0xfe
xor ecx, ecx
mov cl, al
mov dword [esp + 0x28], ecx
cmp ecx, 1
jne 0x4e1fe0
mov eax, dword [esp + 0x1b8]
cmp eax, 1
jne 0x4e1fe0
mov dword [esp + 0xac], 0
mov esi, dword [esp + 0x24]
sub esi, edi
dec esi
jns 0x4e1e3a
mov dword [esp + 0x28], 1
jmp 0x4e1fe0
cmp esi, 0x18
jge 0x4e1f24
mov eax, dword [ebp + 0x11dc8c]
cmp eax, edx
jl 0x4e1e77
mov eax, dword [ebp + 0x11dc90]
cmp eax, edi
jl 0x4e1e77
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x11dc84]
cmp ecx, eax
jg 0x4e1e77
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 0x11dc88]
cmp ecx, eax
jle 0x4e1f24
shl esi, 3
mov ecx, edi
sar edi, 2
and ecx, 3
lea eax, [esi + ecx*2]
mov ecx, dword [eax*4 + 0x567e38]
mov esi, dword [eax*4 + 0x567e3c]
mov eax, dword [esp + 0x18]
test esi, esi
jne 0x4e1edb
cmp eax, edx
jle 0x4e1ec1
mov eax, edx
shl eax, 8
sub eax, edx
add eax, edi
lea eax, [eax + ebp + 0xce624]
mov ebx, dword [eax]
test ecx, ebx
jne 0x4e1ece
add eax, 0xff
inc edx
cmp edx, dword [esp + 0x18]
jl 0x4e1eaf
mov dword [esp + 0x28], 1
jmp 0x4e1fe0
mov dword [esp + 0x28], 0xfe
jmp 0x4e1fe0
cmp eax, edx
jle 0x4e1ec1
mov eax, edx
shl eax, 8
sub eax, edx
add eax, edi
lea eax, [eax + ebp + 0xce624]
mov ebx, dword [eax]
test ecx, ebx
jne 0x4e1f0a
mov ebx, dword [eax + 4]
test esi, ebx
jne 0x4e1f17
add eax, 0xff
inc edx
cmp edx, dword [esp + 0x18]
jl 0x4e1eef
jmp 0x4e1ec1
mov dword [esp + 0x28], 0xfe
jmp 0x4e1fe0
mov dword [esp + 0x28], 0xfe
jmp 0x4e1fe0
mov eax, dword [esp + 0x18]
cmp eax, edx
jle 0x4e1fcd
mov ebx, edx
shl ebx, 8
sub ebx, edx
mov esi, edi
mov eax, dword [esp + 0x24]
cmp eax, edi
jle 0x4e1fbc
mov eax, esi
mov ecx, esi
sar eax, 2
and ecx, 3
add eax, ebx
nop
mov cl, byte [ecx + 0x567e08]
mov al, byte [eax + ebp + 0xce624]
shr al, cl
test al, 3
jbe 0x4e1fb3
mov eax, dword [ebp + 0x11dc4c]
cmp eax, 0xffffffff
je 0x4e20c1
mov eax, dword [ebp + 0x11dc84]
cmp eax, edx
jg 0x4e20c1
mov eax, dword [ebp + 0x11dc8c]
cmp eax, edx
jl 0x4e20c1
mov eax, dword [ebp + 0x11dc88]
cmp eax, esi
jg 0x4e20c1
mov eax, dword [ebp + 0x11dc90]
cmp eax, esi
jl 0x4e20c1
mov dword [esp + 0xac], 1
inc esi
mov eax, dword [esp + 0x24]
cmp esi, eax
jl 0x4e1f41
add ebx, 0xff
inc edx
cmp edx, dword [esp + 0x18]
jl 0x4e1f37
xor eax, eax
mov ecx, dword [esp + 0xac]
cmp ecx, 1
setne al
mov dword [esp + 0x28], eax
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x98], ecx
cmp eax, 0xfe
jne 0x4e2121
mov eax, dword [ebp + 0x11dcdc]
cmp eax, 0xffffffff
je 0x4e22c6
mov esi, dword [esp + 0x170]
dec esi
jns 0x4e201a
xor esi, esi
xor edi, edi
mov eax, dword [esp + 0x170]
inc eax
mov dword [esp + 0xa0], eax
cmp esi, eax
jg 0x4e2118
mov eax, dword [ebp + 4]
cmp eax, esi
jle 0x4e2118
test edi, edi
jne 0x4e2118
mov ebx, dword [esp + 0x174]
dec ebx
jns 0x4e2052
xor ebx, ebx
mov eax, dword [esp + 0x174]
inc eax
mov dword [esp + 0xa4], eax
cmp ebx, eax
jg 0x4e2108
mov eax, dword [ebp + 8]
cmp eax, ebx
jle 0x4e2108
test edi, edi
jne 0x4e2108
lea eax, [esp + 0xa8]
mov ecx, dword [ebp + 0x11dcdc]
push eax
mov edx, dword [ebp + 0x11dce0]
mov dword [esp + 0xac], 0
push ebx
push esi
push ecx
push edx
mov ecx, dword [ebp + 0x11dc40]
call fcn.004d0320
cmp eax, 0xffffffff
jne 0x4e20d3
mov ecx, dword [esp + 0xa8]
test ecx, ecx
jle 0x4e20ce
mov edi, 1
jmp 0x4e20f8
mov dword [esp + 0x28], 0xfe
jmp 0x4e1fe0
cmp eax, 0xffffffff
je 0x4e20f8
push eax
mov ecx, dword [ebp + 0x11dc40]
call fcn.004d0430
test eax, eax
je 0x4e20f8
mov dword [esp + 0x9c], 1
mov eax, dword [eax + 0x30]
mov dword [esp + 0x98], eax
inc ebx
mov eax, dword [esp + 0xa4]
cmp ebx, eax
jle 0x4e2069
inc esi
mov eax, dword [esp + 0xa0]
cmp esi, eax
jle 0x4e2033
cmp edi, 1
je 0x4e22c6
xor ecx, ecx
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x9c]
mov cl, byte [ebp + eax + 0x10de28]
shl ecx, 4
add edx, ecx
cmp ebx, 1
mov dword [esp + 0x20], edx
jne 0x4e2165
mov eax, dword [esp + 0x98]
cmp eax, 0x41200000
jl 0x4e215a
lea eax, [edx + 0x3c]
jmp 0x4e2161
mov eax, dword [esp + 0x20]
add eax, 0x10
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x64]
mov dl, byte [ebp + 0x11dcd8]
mov al, byte [ebp + eax + 0xc]
mov cl, al
and cl, 0xf8
cmp cl, dl
jne 0x4e2189
and eax, 7
mov ecx, dword [esp + 0x44]
cmp eax, ecx
je 0x4e2198
jmp 0x4e2194
mov eax, dword [esp + 0x44]
cmp eax, 0xff
je 0x4e2198
inc dword [esp + 0x20]
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x4e21a8
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x20]
mov dword [ebp + eax*4 + 0xfe10], ecx
mov ecx, dword [esp + 0x44]
and cl, 7
mov dl, byte [ebp + 0x11dcd8]
or cl, dl
mov byte [ebp + eax + 0xc], cl
mov ecx, dword [ebp + 0x11dc2c]
inc ecx
mov al, byte [esp + 0x170]
mov dl, byte [esp + 0x174]
mov dword [ebp + 0x11dc2c], ecx
mov byte [ebp + ecx*8 + 0x4f614], al
mov ecx, dword [ebp + 0x11dc2c]
mov byte [ebp + ecx*8 + 0x4f615], dl
mov ecx, dword [esp + 0x20]
mov eax, dword [ebp + 0x11dc2c]
mov dword [ebp + eax*8 + 0x4f618], ecx
mov eax, dword [ebp + 0x11dc2c]
mov edi, eax
mov dword [esp + 0x5c], eax
cmp eax, 1
jl 0x4e22ba
cdq
sub eax, edx
mov ecx, dword [esp + 0x5c]
sar eax, 1
mov esi, eax
mov dl, byte [ebp + ecx*8 + 0x4f615]
mov eax, dword [esp + 0x5c]
mov ecx, dword [ebp + ecx*8 + 0x4f618]
mov ebx, dword [ebp + esi*8 + 0x4f618]
mov byte [esp + 0x14], dl
mov al, byte [ebp + eax*8 + 0x4f614]
cmp ebx, ecx
mov byte [esp + 0x15], al
jle 0x4e2295
mov edx, dword [ebp + esi*8 + 0x4f614]
lea eax, [ebp + esi*8]
add eax, 0x4f614
lea ebx, [ebp + edi*8]
add ebx, 0x4f614
mov eax, dword [eax + 4]
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov edi, eax
mov eax, esi
cdq
sub eax, edx
sar eax, 1
mov esi, eax
mov eax, dword [ebp + eax*8 + 0x4f618]
cmp eax, ecx
jg 0x4e2256
mov eax, dword [esp + 0x5c]
cmp eax, edi
je 0x4e22ba
mov al, byte [esp + 0x15]
mov dl, byte [esp + 0x14]
mov byte [ebp + edi*8 + 0x4f614], al
mov byte [ebp + edi*8 + 0x4f615], dl
mov dword [ebp + edi*8 + 0x4f618], ecx
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4e26ca
inc dword [esp + 0x44]
mov eax, dword [esp + 0x6c]
add eax, eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x6c], eax
cmp ecx, 8
jl 0x4e1548
mov eax, dword [esp + 0x68]
mov ecx, dword [ebp + 0x11dc2c]
mov dword [ebp + 0x11dc74], 0
inc eax
test ecx, ecx
mov dword [esp + 0x68], eax
jg 0x4e1284
mov eax, dword [ebp + 0x11dc2c]
mov cl, byte [ebp + 0x11dc30]
inc eax
mov dword [ebp + 0x11dc2c], eax
mov byte [ebp + eax*8 + 0x4f614], cl
mov eax, dword [ebp + 0x11dc2c]
mov dl, byte [ebp + 0x11dc31]
mov byte [ebp + eax*8 + 0x4f615], dl
mov eax, dword [ebp + 0x11dc2c]
mov dword [ebp + eax*8 + 0x4f618], 0
mov eax, dword [ebp + 0x11dc2c]
mov ecx, eax
mov dword [esp + 0x58], eax
cmp eax, 1
jl 0x4e23f0
cdq
sub eax, edx
mov edx, dword [esp + 0x58]
sar eax, 1
mov esi, eax
mov bl, byte [ebp + edx*8 + 0x4f615]
mov eax, dword [esp + 0x58]
mov edi, dword [ebp + edx*8 + 0x4f618]
mov byte [esp + 0x12], bl
mov al, byte [ebp + eax*8 + 0x4f614]
mov byte [esp + 0x13], al
mov eax, dword [ebp + esi*8 + 0x4f618]
cmp eax, edi
jle 0x4e23cb
mov edx, dword [ebp + esi*8 + 0x4f614]
lea eax, [ebp + esi*8]
add eax, 0x4f614
lea ebx, [ebp + ecx*8]
add ebx, 0x4f614
mov eax, dword [eax + 4]
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, esi
cdq
sub eax, edx
sar eax, 1
mov esi, eax
mov eax, dword [ebp + eax*8 + 0x4f618]
cmp eax, edi
jg 0x4e238c
mov eax, dword [esp + 0x58]
cmp ecx, eax
je 0x4e23f0
mov al, byte [esp + 0x13]
mov dl, byte [esp + 0x12]
mov byte [ebp + ecx*8 + 0x4f614], al
mov byte [ebp + ecx*8 + 0x4f615], dl
mov dword [ebp + ecx*8 + 0x4f618], edi
mov eax, dword [esp + 0x1a8]
cmp eax, 1
jne 0x4e2a55
mov eax, dword [esp + 0x1bc]
mov ecx, ebp
push eax
call fcn.004e3100
test eax, eax
jne 0x4e2a55
mov eax, dword [esp + 0x19c]
mov cl, byte [eax + 0x154]
test cl, cl
jne 0x4e2942
lea ecx, [eax + 0xa4]
jmp 0x4e294f
mov eax, dword [esp + 0x1a8]
cmp eax, 1
jne 0x4e2593
mov eax, dword [esp + 0x1bc]
mov ecx, ebp
push eax
call fcn.004e3100
test eax, eax
jne 0x4e2593
mov eax, dword [esp + 0x19c]
mov cl, byte [eax + 0x154]
test cl, cl
jne 0x4e2477
lea ecx, [eax + 0xa4]
jmp 0x4e2484
mov ecx, dword [esp + 0x19c]
add ecx, 0xd8
xor esi, esi
call fcn.004d3ee0
mov eax, dword [ebp + 0x11dc44]
cmp dword [eax + 0x58], esi
jle 0x4e2562
mov edi, dword [ebp + 0x11dc44]
mov eax, dword [edi + 0x60]
add edi, 0x54
dec eax
cmp eax, esi
jge 0x4e2510
lea eax, [esi*4 + 4]
push eax
call fcn.0052f700
mov dword [esp + 0x8c], eax
add esp, 4
test eax, eax
je 0x4e2510
xor eax, eax
mov ecx, dword [edi + 0xc]
cmp ecx, eax
jle 0x4e24f6
xor edx, edx
mov ecx, dword [esp + 0x88]
lea ebx, [esi + 1]
cmp eax, ebx
jge 0x4e24f6
mov ebx, dword [edi]
add edx, 4
add ecx, 4
inc eax
mov ebx, dword [ebx + edx - 4]
mov dword [ecx - 4], ebx
mov ebx, dword [edi + 0xc]
cmp ebx, eax
jg 0x4e24d8
mov eax, dword [edi]
lea ebx, [esi + 1]
push eax
call fcn.0052f720
mov eax, dword [esp + 0x8c]
add esp, 4
mov dword [edi], eax
mov dword [edi + 0xc], ebx
mov eax, dword [edi]
mov ecx, dword [eax + esi*4]
push ecx
mov ecx, dword [ebp + 0x11dc40]
call fcn.004d0430
mov ecx, eax
test ecx, ecx
je 0x4e2552
mov edx, dword [ebp + 0x11dc44]
mov eax, dword [ecx + 4]
cmp dword [edx + 4], eax
je 0x4e2552
mov al, byte [ecx + 0x85]
cmp al, 1
jne 0x4e2552
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x4e2552
mov eax, dword [ebp + 0x11dcf4]
push eax
call fcn.004b0c10
inc esi
mov eax, dword [ebp + 0x11dc44]
cmp dword [eax + 0x58], esi
jg 0x4e249a
mov eax, dword [ebp + 0x11dc48]
cmp eax, 1
jne 0x4e2b95
mov ecx, dword [ebp + 0x11dc44]
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x4e2b95
mov eax, dword [ebp + 0x11dcf4]
push eax
call fcn.004b0c10
jmp 0x4e2b95
mov ecx, dword [esp + 0x1ac]
test ecx, ecx
je 0x4e25c3
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x178]
shl eax, 8
mov ebx, dword [esp + 0x17c]
sub eax, edx
add eax, ebx
fild dword [ebp + eax*4 + 0xfe10]
fstp dword [ecx]
xor esi, esi
mov eax, dword [ebp + 0x11dc44]
cmp dword [eax + 0x58], esi
jle 0x4e269c
mov edi, dword [ebp + 0x11dc44]
mov eax, dword [edi + 0x60]
add edi, 0x54
dec eax
cmp eax, esi
jge 0x4e264a
lea eax, [esi*4 + 4]
push eax
call fcn.0052f700
mov dword [esp + 0x88], eax
add esp, 4
test eax, eax
je 0x4e264a
xor ecx, ecx
mov eax, dword [edi + 0xc]
cmp eax, ecx
jle 0x4e2630
xor eax, eax
mov ebx, dword [esp + 0x84]
lea edx, [esi + 1]
cmp ecx, edx
jge 0x4e2630
mov edx, dword [edi]
add eax, 4
add ebx, 4
inc ecx
mov edx, dword [edx + eax - 4]
mov dword [ebx - 4], edx
mov edx, dword [edi + 0xc]
cmp edx, ecx
jg 0x4e2612
mov eax, dword [edi]
push eax
call fcn.0052f720
mov eax, dword [esp + 0x88]
add esp, 4
lea edx, [esi + 1]
mov dword [edi], eax
mov dword [edi + 0xc], edx
mov eax, dword [edi]
mov ecx, dword [eax + esi*4]
push ecx
mov ecx, dword [ebp + 0x11dc40]
call fcn.004d0430
mov ecx, eax
test ecx, ecx
je 0x4e268c
mov eax, dword [ebp + 0x11dc44]
mov edx, dword [ecx + 4]
cmp dword [eax + 4], edx
je 0x4e268c
mov al, byte [ecx + 0x85]
cmp al, 1
jne 0x4e268c
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x4e268c
mov eax, dword [ebp + 0x11dcf4]
push eax
call fcn.004b0c10
inc esi
mov eax, dword [ebp + 0x11dc44]
cmp dword [eax + 0x58], esi
jg 0x4e25d4
mov eax, dword [ebp + 0x11dc48]
cmp eax, 1
jne 0x4e26c0
mov ecx, dword [ebp + 0x11dc44]
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x4e26c0
mov eax, dword [ebp + 0x11dcf4]
push eax
call fcn.004b0c10
mov eax, 1
jmp 0x4e2b97
mov eax, dword [esp + 0x1a8]
cmp eax, 1
jne 0x4e2826
mov eax, dword [esp + 0x1bc]
mov ecx, ebp
push eax
call fcn.004e3100
test eax, eax
jne 0x4e2826
mov eax, dword [esp + 0x19c]
mov cl, byte [eax + 0x154]
test cl, cl
jne 0x4e270a
lea ecx, [eax + 0xa4]
jmp 0x4e2717
mov ecx, dword [esp + 0x19c]
add ecx, 0xd8
xor esi, esi
call fcn.004d3ee0
mov eax, dword [ebp + 0x11dc44]
cmp dword [eax + 0x58], esi
jle 0x4e27f5
mov edi, dword [ebp + 0x11dc44]
mov eax, dword [edi + 0x60]
add edi, 0x54
dec eax
cmp eax, esi
jge 0x4e27a3
lea eax, [esi*4 + 4]
push eax
call fcn.0052f700
mov dword [esp + 0x84], eax
add esp, 4
test eax, eax
je 0x4e27a3
xor ebx, ebx
mov eax, dword [edi + 0xc]
cmp eax, ebx
jle 0x4e2789
xor eax, eax
mov edx, dword [esp + 0x80]
lea ecx, [esi + 1]
cmp ebx, ecx
jge 0x4e2789
mov ecx, dword [edi]
add eax, 4
add edx, 4
inc ebx
mov ecx, dword [ecx + eax - 4]
mov dword [edx - 4], ecx
mov ecx, dword [edi + 0xc]
cmp ecx, ebx
jg 0x4e276b
mov eax, dword [edi]
push eax
call fcn.0052f720
mov eax, dword [esp + 0x84]
add esp, 4
lea ecx, [esi + 1]
mov dword [edi], eax
mov dword [edi + 0xc], ecx
mov eax, dword [edi]
mov ecx, dword [eax + esi*4]
push ecx
mov ecx, dword [ebp + 0x11dc40]
call fcn.004d0430
mov ecx, eax
test ecx, ecx
je 0x4e27e5
mov eax, dword [ebp + 0x11dc44]
mov edx, dword [ecx + 4]
cmp dword [eax + 4], edx
je 0x4e27e5
mov al, byte [ecx + 0x85]
cmp al, 1
jne 0x4e27e5
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x4e27e5
mov eax, dword [ebp + 0x11dcf4]
push eax
call fcn.004b0c10
inc esi
mov eax, dword [ebp + 0x11dc44]
cmp dword [eax + 0x58], esi
jg 0x4e272d
mov eax, dword [ebp + 0x11dc48]
cmp eax, 1
jne 0x4e2b95
mov ecx, dword [ebp + 0x11dc44]
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x4e2b95
mov eax, dword [ebp + 0x11dcf4]
push eax
call fcn.004b0c10
jmp 0x4e2b95
mov ecx, dword [esp + 0x1ac]
test ecx, ecx
je 0x4e283e
mov eax, dword [esp + 0x64]
fild dword [ebp + eax*4 + 0xfe10]
fstp dword [ecx]
xor esi, esi
mov eax, dword [ebp + 0x11dc44]
cmp dword [eax + 0x58], esi
jle 0x4e2914
mov edi, dword [ebp + 0x11dc44]
mov eax, dword [edi + 0x60]
add edi, 0x54
dec eax
cmp eax, esi
jge 0x4e28c2
lea eax, [esi*4 + 4]
push eax
call fcn.0052f700
mov dword [esp + 0x80], eax
add esp, 4
test eax, eax
je 0x4e28c2
xor eax, eax
mov ecx, dword [edi + 0xc]
cmp ecx, eax
jle 0x4e28a8
xor edx, edx
mov ecx, dword [esp + 0x7c]
lea ebx, [esi + 1]
cmp ebx, eax
jle 0x4e28a8
mov ebx, dword [edi]
add edx, 4
add ecx, 4
inc eax
mov ebx, dword [ebx + edx - 4]
mov dword [ecx - 4], ebx
mov ebx, dword [edi + 0xc]
cmp ebx, eax
jg 0x4e288a
mov eax, dword [edi]
lea ebx, [esi + 1]
push eax
call fcn.0052f720
mov eax, dword [esp + 0x80]
add esp, 4
mov dword [edi], eax
mov dword [edi + 0xc], ebx
mov eax, dword [edi]
mov ecx, dword [eax + esi*4]
push ecx
mov ecx, dword [ebp + 0x11dc40]
call fcn.004d0430
mov ecx, eax
test ecx, ecx
je 0x4e2904
mov eax, dword [ebp + 0x11dc44]
mov edx, dword [ecx + 4]
cmp dword [eax + 4], edx
je 0x4e2904
mov al, byte [ecx + 0x85]
cmp al, 1
jne 0x4e2904
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x4e2904
mov eax, dword [ebp + 0x11dcf4]
push eax
call fcn.004b0c10
inc esi
mov eax, dword [ebp + 0x11dc44]
cmp dword [eax + 0x58], esi
jg 0x4e284f
mov eax, dword [ebp + 0x11dc48]
cmp eax, 1
jne 0x4e2938
mov ecx, dword [ebp + 0x11dc44]
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x4e2938
mov eax, dword [ebp + 0x11dcf4]
push eax
call fcn.004b0c10
mov eax, 1
jmp 0x4e2b97
mov ecx, dword [esp + 0x19c]
add ecx, 0xd8
xor esi, esi
call fcn.004d3ee0
mov eax, dword [ebp + 0x11dc44]
cmp dword [eax + 0x58], esi
jle 0x4e2a24
mov edi, dword [ebp + 0x11dc44]
mov eax, dword [edi + 0x60]
add edi, 0x54
dec eax
cmp eax, esi
jge 0x4e29d2
lea eax, [esi*4 + 4]
push eax
call fcn.0052f700
mov dword [esp + 0x7c], eax
add esp, 4
test eax, eax
je 0x4e29d2
xor edx, edx
mov eax, dword [edi + 0xc]
cmp eax, edx
jle 0x4e29bb
xor ebx, ebx
mov ecx, dword [esp + 0x78]
lea eax, [esi + 1]
cmp edx, eax
jge 0x4e29bb
mov eax, dword [edi]
add ebx, 4
add ecx, 4
inc edx
mov eax, dword [eax + ebx - 4]
mov dword [ecx - 4], eax
mov eax, dword [edi + 0xc]
cmp eax, edx
jg 0x4e299d
mov eax, dword [edi]
push eax
call fcn.0052f720
mov eax, dword [esp + 0x7c]
add esp, 4
lea ecx, [esi + 1]
mov dword [edi], eax
mov dword [edi + 0xc], ecx
mov eax, dword [edi]
mov ecx, dword [eax + esi*4]
push ecx
mov ecx, dword [ebp + 0x11dc40]
call fcn.004d0430
mov ecx, eax
test ecx, ecx
je 0x4e2a14
mov eax, dword [ebp + 0x11dc44]
mov edx, dword [ecx + 4]
cmp dword [eax + 4], edx
je 0x4e2a14
mov al, byte [ecx + 0x85]
cmp al, 1
jne 0x4e2a14
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x4e2a14
mov eax, dword [ebp + 0x11dcf4]
push eax
call fcn.004b0c10
inc esi
mov eax, dword [ebp + 0x11dc44]
cmp dword [eax + 0x58], esi
jg 0x4e2965
mov eax, dword [ebp + 0x11dc48]
cmp eax, 1
jne 0x4e2b95
mov ecx, dword [ebp + 0x11dc44]
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x4e2b95
mov eax, dword [ebp + 0x11dcf4]
push eax
call fcn.004b0c10
jmp 0x4e2b95
mov ecx, dword [esp + 0x1ac]
test ecx, ecx
je 0x4e2a68
fild dword [ebp + 0x11dc34]
fstp dword [ecx]
xor esi, esi
mov eax, dword [ebp + 0x11dc44]
cmp dword [eax + 0x58], esi
jle 0x4e2b38
mov edi, dword [ebp + 0x11dc44]
mov eax, dword [edi + 0x60]
add edi, 0x54
dec eax
cmp eax, esi
jge 0x4e2ae6
lea eax, [esi*4 + 4]
push eax
call fcn.0052f700
mov dword [esp + 0x78], eax
add esp, 4
test eax, eax
je 0x4e2ae6
xor ebx, ebx
mov eax, dword [edi + 0xc]
cmp eax, ebx
jle 0x4e2acf
xor ecx, ecx
mov eax, dword [esp + 0x74]
lea edx, [esi + 1]
cmp ebx, edx
jge 0x4e2acf
mov edx, dword [edi]
add ecx, 4
add eax, 4
inc ebx
mov edx, dword [edx + ecx - 4]
mov dword [eax - 4], edx
mov edx, dword [edi + 0xc]
cmp edx, ebx
jg 0x4e2ab1
mov eax, dword [edi]
push eax
call fcn.0052f720
mov eax, dword [esp + 0x78]
add esp, 4
lea edx, [esi + 1]
mov dword [edi], eax
mov dword [edi + 0xc], edx
mov eax, dword [edi]
mov ecx, dword [eax + esi*4]
push ecx
mov ecx, dword [ebp + 0x11dc40]
call fcn.004d0430
mov ecx, eax
test ecx, ecx
je 0x4e2b28
mov edx, dword [ebp + 0x11dc44]
mov eax, dword [ecx + 4]
cmp dword [edx + 4], eax
je 0x4e2b28
mov al, byte [ecx + 0x85]
cmp al, 1
jne 0x4e2b28
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x4e2b28
mov eax, dword [ebp + 0x11dcf4]
push eax
call fcn.004b0c10
inc esi
mov eax, dword [ebp + 0x11dc44]
cmp dword [eax + 0x58], esi
jg 0x4e2a79
mov eax, dword [ebp + 0x11dc48]
cmp eax, 1
jne 0x4e2b95
mov ecx, dword [ebp + 0x11dc44]
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x4e2b95
mov eax, dword [ebp + 0x11dcf4]
push eax
call fcn.004b0c10
jmp 0x4e2b95
mov eax, dword [esp + 0x1a8]
cmp eax, 1
jne 0x4e2b95
mov eax, dword [esp + 0x19c]
mov cl, byte [eax + 0x154]
test cl, cl
jne 0x4e2b83
lea ecx, [eax + 0xa4]
jmp 0x4e2b90
mov ecx, dword [esp + 0x19c]
add ecx, 0xd8
call fcn.004d3ee0
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x178
ret 0x3c