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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe20
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1bc], ebx
mov dword [ebp - 0x1b8], ebx
mov dword [ebp - 0x1ac], ebx
mov dword [ebp - 0x194], ebx
mov dword [ebp - 0x198], ebx
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x160], ebx
mov esi, ecx
mov dword [ebp - 4], edx
mov edi, eax
xor eax, eax
push ebp
push 0x5ec250
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
cdq
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
mov eax, dword [esi + 0xc]
mov ebx, dword [eax + 8]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x44]
push eax
mov eax, dword [0x8e6f64]
mov eax, dword [eax]
call eax
pop ecx
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [0x8e6f64]
mov eax, dword [eax]
call eax
pop ecx
mov dword [ebp - 0x54], eax
mov eax, dword [ebx + 0x78]
mov eax, dword [eax + 8]
push eax
mov eax, dword [0x8e714c]
mov eax, dword [eax]
call eax
pop ecx
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x40]
imul dword [ebp - 0x54]
cdq
push edx
push eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x40]
imul dword [ebp - 0x54]
cdq
add eax, dword [ebp - 0x20]
adc edx, dword [ebp - 0x1c]
sub eax, 1
sbb edx, 0
call fcn.00409410
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x3c]
cdq
push edx
push eax
mov eax, dword [ebx + 0x3c]
cdq
push edx
push eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
call fcn.004093c8
push edx
push eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x3c]
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
call fcn.00409410
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
push 0
push 2
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
call fcn.004093c8
add eax, 0x2710
adc edx, 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov eax, dword [ebx + 0x48]
cdq
cmp edx, dword [ebp - 0x14]
jne 0x5eb45c
cmp eax, dword [ebp - 0x18]
jbe 0x5eb468
jmp 0x5eb45e
jle 0x5eb468
mov eax, dword [ebx + 0x48]
cdq
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov eax, dword [ebx + 0x40]
cdq
push edx
push eax
mov eax, dword [ebp - 0x50]
cdq
push edx
push eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
call fcn.004093c8
call fcn.004093c8
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov eax, dword [ebx + 0x48]
imul dword [ebp - 0x50]
imul dword [ebx + 0x40]
cdq
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x14]
jne 0x5eb4ac
cmp eax, dword [ebp - 0x18]
jae 0x5eb4ba
jmp 0x5eb4ae
jge 0x5eb4ba
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x50]
add eax, eax
add eax, eax
add eax, eax
cmp eax, dword [ebp - 0x58]
jge 0x5eb4f0
mov eax, dword [ebp - 0x50]
add eax, eax
add eax, eax
add eax, eax
cdq
push edx
push eax
mov eax, dword [ebp - 0x58]
cdq
push edx
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.004093c8
call fcn.00409410
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
add dword [ebp - 0x10], 0x4000
adc dword [ebp - 0xc], 0
cmp dword [ebp - 0xc], 0
jne 0x5eb50c
cmp dword [ebp - 0x10], 0x7fffffff
ja 0x5eb521
jmp 0x5eb50e
jg 0x5eb521
cmp dword [ebp - 0x14], 0
jne 0x5eb51f
cmp dword [ebp - 0x18], 0x7fffffff
jbe 0x5eb537
jmp 0x5eb521
jle 0x5eb537
mov ecx, 0x5ec26c
mov dl, 1
mov eax, dword [0x5e6bb4]
call fcn.0041ca5c
call fcn.004063f4
mov eax, dword [ebp - 0x18]
push eax
lea eax, [edi + 0x2cc]
push eax
lea eax, [edi + 0x2c0]
push eax
mov eax, dword [0x8e63cc]
mov eax, dword [eax]
call eax
add esp, 0xc
mov eax, dword [ebp - 0x10]
push eax
lea eax, [edi + 0x2c8]
push eax
lea eax, [edi + 0x2c4]
push eax
mov eax, dword [0x8e63cc]
mov eax, dword [eax]
call eax
add esp, 0xc
cmp dword [edi + 0x2c0], 0
je 0x5eb585
cmp dword [edi + 0x2c4], 0
jne 0x5eb59b
mov ecx, 0x5ec2c8
mov dl, 1
mov eax, dword [0x5e6bb4]
call fcn.0041ca5c
call fcn.004063f4
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x40]
cmp eax, dword [ebx + 0x40]
je 0x5eb5b0
mov dword [esi + 0x178], 1
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x44]
cmp eax, dword [esi + 0x180]
jne 0x5eb5de
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x40]
cmp eax, dword [esi + 0x184]
jne 0x5eb5de
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x3c]
cmp eax, dword [esi + 0x188]
jne 0x5eb5de
xor eax, eax
jmp 0x5eb5e0
mov al, 1
cmp dword [esi + 0x178], 0
je 0x5eb5f2
cmp dword [esi + 0x17c], 0
je 0x5eb5fa
test al, al
je 0x5eb843
test al, al
je 0x5eb734
push 0x5ec310
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x158], eax
mov byte [ebp - 0x154], 0
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebp - 0x150], eax
mov byte [ebp - 0x14c], 0
mov eax, dword [esi + 0x188]
mov dword [ebp - 0x148], eax
mov byte [ebp - 0x144], 0
mov eax, dword [esi + 0x180]
push eax
mov eax, dword [0x8e6ca0]
mov eax, dword [eax]
call eax
pop ecx
mov edx, eax
lea eax, [ebp - 0x15c]
call fcn.00407f78
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x140], eax
mov byte [ebp - 0x13c], 0x11
mov eax, dword [esi + 0x184]
mov dword [ebp - 0x138], eax
mov byte [ebp - 0x134], 0
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0x130], eax
mov byte [ebp - 0x12c], 0
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [0x8e6ca0]
mov eax, dword [eax]
call eax
pop ecx
mov edx, eax
lea eax, [ebp - 0x160]
call fcn.00407f78
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x128], eax
mov byte [ebp - 0x124], 0x11
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x40]
mov dword [ebp - 0x120], eax
mov byte [ebp - 0x11c], 0
lea eax, [ebp - 0x158]
push eax
push 7
call fcn.005b042c
mov ecx, 5
mov edx, edi
call fcn.005b10d8
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x44]
mov dword [esi + 0x180], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x40]
mov dword [esi + 0x184], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x3c]
mov dword [esi + 0x188], eax
cmp dword [esi + 0x17c], 0
je 0x5eb734
mov eax, dword [esi + 0x17c]
push eax
mov eax, dword [0x8e6eec]
mov eax, dword [eax]
call eax
pop ecx
cmp dword [edi + 0x230], 1
jg 0x5eb773
mov eax, dword [esi + 0x180]
cmp eax, dword [ebx + 0x44]
jne 0x5eb773
mov eax, dword [esi + 0x184]
cmp eax, dword [ebx + 0x40]
jne 0x5eb773
mov eax, dword [esi + 0x188]
cmp eax, dword [ebx + 0x3c]
jne 0x5eb773
xor eax, eax
mov dword [esi + 0x17c], eax
xor eax, eax
mov dword [esi + 0x178], eax
jmp 0x5eb843
mov eax, dword [ebp - 0x30]
cmp dword [eax + 0x44], 1
je 0x5eb792
push 0x5ec3c4
call fcn.005b042c
mov ecx, 4
mov edx, edi
call fcn.005b1078
push 0x3fe99999
push 0x9999999a
push 0
push 0xa
push 0x10
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebx + 0x44]
push eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x3c]
push eax
mov eax, dword [ebx + 0x3c]
push eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x40]
push eax
mov eax, dword [ebx + 0x40]
push eax
mov eax, dword [0x8e6244]
mov eax, dword [eax]
call eax
add esp, 0x2c
mov dword [esi + 0x17c], eax
cmp dword [esi + 0x17c], 0
jne 0x5eb843
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x40]
mov dword [ebp - 0x180], eax
mov byte [ebp - 0x17c], 0
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0x178], eax
mov byte [ebp - 0x174], 0
mov eax, dword [ebx + 0x40]
mov dword [ebp - 0x170], eax
mov byte [ebp - 0x16c], 0
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 0x168], eax
mov byte [ebp - 0x164], 0
lea eax, [ebp - 0x180]
push eax
push 3
mov ecx, 0x5ec44c
mov dl, 1
mov eax, dword [0x5e6bb4]
call fcn.0041ca98
call fcn.004063f4
cmp dword [esi + 0x178], 0
jne 0x5eb95f
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x44]
cmp eax, dword [ebx + 0x44]
je 0x5eb95f
mov eax, dword [ebx + 0x44]
movsx eax, al
mov edx, dword [ebp - 0x30]
mov edx, dword [edx + 0x44]
movsx edx, dl
lea edx, [edx + edx*4]
add eax, edx
cmp eax, dword [esi + 0x18c]
je 0x5eb95f
cmp dword [esi + 0x190], 0
je 0x5eb899
mov eax, dword [esi + 0x190]
push eax
mov eax, dword [0x8e62dc]
mov eax, dword [eax]
call eax
pop ecx
push 0
push 0
push 1
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x44]
push eax
push 1
mov eax, dword [ebx + 0x44]
push eax
mov eax, dword [0x8e7028]
mov eax, dword [eax]
call eax
add esp, 0x18
mov dword [esi + 0x190], eax
cmp dword [esi + 0x190], 0
jne 0x5eb945
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [0x8e6ca0]
mov eax, dword [eax]
call eax
pop ecx
mov edx, eax
lea eax, [ebp - 0x194]
call fcn.00407f78
mov eax, dword [ebp - 0x194]
mov dword [ebp - 0x190], eax
mov byte [ebp - 0x18c], 0x11
mov eax, dword [ebx + 0x44]
push eax
mov eax, dword [0x8e6ca0]
mov eax, dword [eax]
call eax
pop ecx
mov edx, eax
lea eax, [ebp - 0x198]
call fcn.00407f78
mov eax, dword [ebp - 0x198]
mov dword [ebp - 0x188], eax
mov byte [ebp - 0x184], 0x11
lea eax, [ebp - 0x190]
push eax
push 1
mov ecx, 0x5ec4d0
mov dl, 1
mov eax, dword [0x5e6bb4]
call fcn.0041ca98
call fcn.004063f4
mov eax, dword [ebx + 0x44]
movsx eax, al
mov edx, dword [ebp - 0x30]
mov edx, dword [edx + 0x44]
movsx edx, dl
lea edx, [edx + edx*4]
add eax, edx
mov dword [esi + 0x18c], eax
cmp dword [edi + 0x230], 0
je 0x5ebcfa
mov eax, dword [esi + 0x18]
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
push edx
push eax
mov eax, dword [edi + 0x1f0]
mov edx, dword [edi + 0x1f4]
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x19c], edx
fild qword [ebp - 0x1a0]
mov eax, dword [0x8e6d78]
fild qword [eax]
fdivp st(1)
fstp qword [ebp - 0x60]
wait
mov eax, dword [esi + 0x194]
push eax
mov eax, dword [0x8e639c]
mov eax, dword [eax]
call eax
pop ecx
mov dword [ebp - 0x1a4], eax
fild dword [ebp - 0x1a4]
mov eax, dword [ebx + 0x40]
add eax, eax
mov dword [ebp - 0x1a8], eax
fild dword [ebp - 0x1a8]
fdivp st(1)
fild dword [ebx + 0x3c]
fmul qword [ebp - 0x60]
fild qword [esi + 0x20]
fsubp st(1)
fsubrp st(1)
fstp qword [ebp - 0x38]
wait
mov eax, dword [ebp - 0x30]
fild dword [eax + 0x3c]
fmul qword [ebp - 0x38]
fild dword [ebx + 0x3c]
fdivp st(1)
fstp qword [ebp - 0x40]
wait
fld qword [ebp - 0x40]
call fcn.00404894
add eax, eax
mov edx, dword [ebp - 0x30]
imul dword [edx + 0x40]
mov dword [ebp - 0x44], eax
fld qword [ebp - 0x38]
fabs
fcomp dword [0x5ec538]
wait
fnstsw ax
sahf
jbe 0x5ebd71
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x38], 0
jne 0x5eba49
fld qword [ebp - 0x38]
fabs
fild dword [ebx + 0x3c]
fmul dword [edi + 0x234]
fcompp
wait
fnstsw ax
sahf
jae 0x5ebbf0
cmp dword [ebp - 0x44], 0
jge 0x5ebaeb
mov eax, dword [ebp + 8]
neg eax
cmp eax, dword [ebp - 0x44]
jle 0x5eba65
mov eax, dword [ebp + 8]
neg eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
add dword [ebp + 8], eax
mov eax, dword [ebp - 0x44]
sub dword [ebp + 0xc], eax
cmp dword [edi + 0x268], 2
jle 0x5ebad4
lea eax, [ebp - 0x1ac]
push eax
fld qword [ebp - 0x38]
fchs
call fcn.00404894
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1b0], edx
lea eax, [ebp - 0x1b4]
mov dword [ebp - 0x1a0], eax
mov byte [ebp - 0x19c], 0x10
lea edx, [ebp - 0x1a0]
xor ecx, ecx
mov eax, 0x5ec548
call fcn.00418808
mov eax, dword [ebp - 0x1ac]
push eax
call fcn.005b042c
mov ecx, 6
mov edx, edi
call fcn.005b1078
cmp dword [ebp + 8], 0
je 0x5ec207
mov eax, dword [ebp + 0x10]
xor edx, edx
mov dword [eax + 0x38], edx
jmp 0x5ebd71
mov eax, dword [ebp - 0x44]
add eax, dword [ebp + 8]
push eax
mov eax, dword [edi + 0x2d0]
push eax
mov eax, dword [0x8e67f0]
mov eax, dword [eax]
call eax
add esp, 8
mov dword [edi + 0x2d0], eax
mov eax, dword [ebp - 0x44]
cdq
push edx
push eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
push edx
push eax
mov eax, dword [ebp + 8]
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
cmp edx, dword [esp + 4]
jne 0x5ebb35
cmp eax, dword [esp]
pop edx
pop eax
jae 0x5ebb4b
jmp 0x5ebb39
pop edx
pop eax
jge 0x5ebb4b
mov eax, dword [ebp - 0x44]
add eax, dword [ebp + 8]
cdq
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
jmp 0x5eb3ca
mov eax, dword [ebp + 0x10]
xor edx, edx
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x2d0]
xor ecx, ecx
mov edx, dword [ebp - 0x44]
call fcn.00404d90
mov edx, dword [edi + 0x2d0]
add edx, dword [ebp - 0x44]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
call fcn.00404518
mov eax, dword [edi + 0x2d0]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x44]
add dword [ebp + 8], eax
cmp dword [edi + 0x268], 2
jle 0x5ebd71
lea eax, [ebp - 0x1b8]
push eax
fld qword [ebp - 0x38]
call fcn.00404894
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1b0], edx
lea eax, [ebp - 0x1b4]
mov dword [ebp - 0x1a0], eax
mov byte [ebp - 0x19c], 0x10
lea edx, [ebp - 0x1a0]
xor ecx, ecx
mov eax, 0x5ec58c
call fcn.00418808
mov eax, dword [ebp - 0x1b8]
push eax
call fcn.005b042c
mov ecx, 6
mov edx, edi
call fcn.005b1078
jmp 0x5ebd71
cmp dword [edi + 0x230], 1
jle 0x5ebd71
fld qword [ebp - 0x38]
call fcn.00404894
mov dword [ebp - 0x64], eax
mov eax, dword [edi + 0x230]
neg eax
cmp eax, dword [ebp - 0x64]
jle 0x5ebc22
mov eax, dword [edi + 0x230]
neg eax
mov dword [ebp - 0x68], eax
jmp 0x5ebc3e
mov eax, dword [edi + 0x230]
cmp eax, dword [ebp - 0x64]
jge 0x5ebc38
mov eax, dword [edi + 0x230]
mov dword [ebp - 0x68], eax
jmp 0x5ebc3e
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x48], eax
cmp dword [esi + 0x178], 0
jne 0x5ebc61
mov ecx, 0x7f1
mov edx, 0x5ec5e0
mov eax, 0x5ec644
call fcn.00406b48
cmp dword [edi + 0x268], 2
jle 0x5ebcdb
lea eax, [ebp - 0x1bc]
push eax
fld qword [ebp - 0x38]
fstp xword [ebp - 0x1e0]
wait
lea eax, [ebp - 0x1e0]
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 0x1d0], 3
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x1cc], eax
mov byte [ebp - 0x1c8], 0
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 0x1c4], eax
mov byte [ebp - 0x1c0], 0
lea edx, [ebp - 0x1d4]
mov ecx, 2
mov eax, 0x5ec674
call fcn.00418808
mov eax, dword [ebp - 0x1bc]
push eax
call fcn.005b042c
mov ecx, 6
mov edx, edi
call fcn.005b1078
mov eax, dword [ebx + 0x3c]
push eax
mov eax, dword [ebp - 0x48]
push eax
mov eax, dword [esi + 0x17c]
mov eax, dword [eax]
push eax
mov eax, dword [0x8e69d8]
mov eax, dword [eax]
call eax
add esp, 0xc
jmp 0x5ebd71
mov eax, dword [esi + 0x18]
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
push edx
push eax
mov eax, dword [edi + 0x1f0]
mov edx, dword [edi + 0x1f4]
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x19c], edx
fild qword [ebp - 0x1a0]
mov eax, dword [0x8e6d78]
fild qword [eax]
fdivp st(1)
fstp qword [ebp - 0x70]
wait
fild dword [ebx + 0x3c]
fmul qword [ebp - 0x70]
call fcn.00404888
push edx
push eax
mov eax, dword [esi + 0x194]
push eax
mov eax, dword [0x8e639c]
mov eax, dword [eax]
call eax
pop ecx
mov edx, dword [ebx + 0x40]
add edx, edx
mov ecx, edx
cdq
idiv ecx
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], edx
cmp dword [esi + 0x178], 0
je 0x5ebdc3
mov eax, dword [edi + 0x2c0]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x40]
imul dword [ebp - 0x54]
push eax
mov eax, dword [ebp + 8]
pop edx
mov ecx, edx
cdq
idiv ecx
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [esi + 0x17c]
push eax
mov eax, dword [0x8e6fe0]
mov eax, dword [eax]
call eax
add esp, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
imul dword [ebx + 0x40]
imul dword [ebp - 0x50]
mov dword [ebp - 0x24], eax
jmp 0x5ebdcf
mov eax, dword [ebp + 0xc]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
cmp dword [esi + 0x178], 0
jne 0x5ebeef
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x44]
cmp eax, dword [ebx + 0x44]
je 0x5ebeef
lea eax, [ebp - 0xd0]
xor ecx, ecx
mov edx, 0x18
call fcn.00404d90
lea eax, [ebp - 0xe8]
xor ecx, ecx
mov edx, 0x18
call fcn.00404d90
lea eax, [ebp - 0x100]
xor ecx, ecx
mov edx, 0x18
call fcn.00404d90
lea eax, [ebp - 0x118]
xor ecx, ecx
mov edx, 0x18
call fcn.00404d90
mov eax, dword [ebp - 8]
mov dword [ebp - 0xd0], eax
mov eax, dword [edi + 0x2c0]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x24]
cdq
idiv dword [ebp - 0x100]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
push eax
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0xe8]
push eax
mov eax, dword [esi + 0x190]
push eax
mov eax, dword [0x8e7180]
mov eax, dword [eax]
call eax
add esp, 0x18
test eax, eax
jge 0x5ebedd
cmp byte [edi + 0x25c], 0
je 0x5ebec2
mov ecx, 0x5ec6f8
mov dl, 1
mov eax, dword [0x5e6bb4]
call fcn.0041ca5c
call fcn.004063f4
jmp 0x5ec207
push 0x5ec6f8
call fcn.005b042c
mov ecx, 3
mov edx, edi
call fcn.005b1078
jmp 0x5ec207
mov eax, dword [edi + 0x2c0]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x4c]
imul dword [ebp - 0x50]
mov dword [ebp - 0x24], eax
cmp dword [ebx + 0x48], 1
jle 0x5ec0ac
mov eax, dword [esi + 0x194]
push eax
mov eax, dword [0x8e639c]
mov eax, dword [eax]
call eax
pop ecx
add eax, dword [ebp - 0x24]
push eax
mov eax, dword [esi + 0x194]
push eax
mov eax, dword [0x8e6bf8]
mov eax, dword [eax]
call eax
add esp, 8
test eax, eax
jge 0x5ebf3b
mov ecx, 0x5ec738
mov dl, 1
mov eax, dword [0x5e6bb4]
call fcn.0041ca5c
call fcn.004063f4
push 0
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [esi + 0x194]
push eax
mov eax, dword [0x8e6908]
mov eax, dword [eax]
call eax
add esp, 0x10
mov eax, dword [ebx + 0x48]
imul dword [ebp - 0x50]
imul dword [ebx + 0x40]
mov dword [ebp - 0x28], eax
jmp 0x5ec08d
lea eax, [ebp - 0xb8]
push eax
mov eax, dword [0x8e6c54]
mov eax, dword [eax]
call eax
pop ecx
push 0
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [edi + 0x2c0]
push eax
mov eax, dword [esi + 0x194]
push eax
mov eax, dword [0x8e6eac]
mov eax, dword [eax]
call eax
add esp, 0x10
mov eax, dword [edi + 0x2c0]
push eax
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [edi + 0x2c4]
push eax
push ebx
mov eax, dword [0x8e67f8]
mov eax, dword [eax]
call eax
add esp, 0x10
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jge 0x5ebfd8
mov ecx, 0x5ec778
mov dl, 1
mov eax, dword [0x5e6bb4]
call fcn.0041ca5c
call fcn.004063f4
mov eax, dword [ebp - 0x2c]
cdq
add dword [edi + 0x280], eax
adc dword [edi + 0x284], edx
mov eax, dword [esi + 4]
mov dword [ebp - 0xa0], eax
mov eax, dword [edi + 0x2c4]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0xa4], eax
cmp dword [ebx + 0x184], 0
je 0x5ec067
mov eax, dword [ebx + 0x184]
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x38]
push edx
push eax
mov eax, dword [0x8e6998]
mov edx, dword [eax + 4]
mov eax, dword [eax]
cmp edx, dword [esp + 4]
jne 0x5ec030
cmp eax, dword [esp]
pop edx
pop eax
je 0x5ec067
mov eax, dword [esi + 0xc]
push dword [eax + 0x3c]
push dword [eax + 0x38]
push dword [ebx + 0x24]
push dword [ebx + 0x20]
mov eax, dword [ebx + 0x184]
push dword [eax + 0x3c]
push dword [eax + 0x38]
mov eax, dword [0x8e66f8]
mov eax, dword [eax]
call eax
add esp, 0x18
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], edx
or dword [ebp - 0x9c], 1
push ebx
mov eax, dword [esi + 0x28]
push eax
lea ecx, [ebp - 0xb8]
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.005eb08c
mov eax, dword [ebx + 0x48]
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov eax, dword [esi + 0x194]
push eax
mov eax, dword [0x8e639c]
mov eax, dword [eax]
call eax
pop ecx
cmp eax, dword [ebp - 0x28]
jge 0x5ebf69
jmp 0x5ec207
lea eax, [ebp - 0xb8]
push eax
mov eax, dword [0x8e6c54]
mov eax, dword [eax]
call eax
pop ecx
mov eax, dword [ebp - 0x50]
imul dword [ebx + 0x40]
push eax
mov eax, dword [ebp - 0x24]
pop edx
mov ecx, edx
cdq
idiv ecx
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x24]
cdq
idiv ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x58], 0
je 0x5ec0f9
mov eax, dword [ebp - 0x24]
imul dword [ebp - 0x58]
test eax, eax
jns 0x5ec0f3
add eax, 7
sar eax, 3
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
cdq
cmp edx, dword [ebp - 0xc]
jne 0x5ec109
cmp eax, dword [ebp - 0x10]
jbe 0x5ec121
jmp 0x5ec10b
jle 0x5ec121
mov ecx, 0x5ec7b0
mov dl, 1
mov eax, dword [0x5e6bb4]
call fcn.0041ca5c
call fcn.004063f4
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [edi + 0x2c4]
push eax
push ebx
mov eax, dword [0x8e67f8]
mov eax, dword [eax]
call eax
add esp, 0x10
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jge 0x5ec15c
mov ecx, 0x5ec778
mov dl, 1
mov eax, dword [0x5e6bb4]
call fcn.0041ca5c
call fcn.004063f4
mov eax, dword [ebp - 0x2c]
cdq
add dword [edi + 0x280], eax
adc dword [edi + 0x284], edx
mov eax, dword [esi + 4]
mov dword [ebp - 0xa0], eax
mov eax, dword [edi + 0x2c4]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0xa4], eax
cmp dword [ebx + 0x184], 0
je 0x5ec1eb
mov eax, dword [ebx + 0x184]
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x38]
push edx
push eax
mov eax, dword [0x8e6998]
mov edx, dword [eax + 4]
mov eax, dword [eax]
cmp edx, dword [esp + 4]
jne 0x5ec1b4
cmp eax, dword [esp]
pop edx
pop eax
je 0x5ec1eb
mov eax, dword [esi + 0xc]
push dword [eax + 0x3c]
push dword [eax + 0x38]
push dword [ebx + 0x24]
push dword [ebx + 0x20]
mov eax, dword [ebx + 0x184]
push dword [eax + 0x3c]
push dword [eax + 0x38]
mov eax, dword [0x8e66f8]
mov eax, dword [eax]
call eax
add esp, 0x18
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], edx
or dword [ebp - 0x9c], 1
push ebx
mov eax, dword [esi + 0x28]
push eax
lea ecx, [ebp - 0xb8]
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.005eb08c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5ec257
lea eax, [ebp - 0x1bc]
mov edx, 2
call fcn.00407de4
lea eax, [ebp - 0x1ac]
call fcn.00407ddc
lea eax, [ebp - 0x198]
mov edx, 2
call fcn.00407de4
lea eax, [ebp - 0x160]
mov edx, 2
call fcn.00407de4
ret