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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e0d56
mov eax, dword fs:[0]
push eax
sub esp, 0x754
mov eax, dword [0x101279d8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x20]
fld qword [ebp + 0x18]
mov esi, dword [ebp + 0xc]
fstp qword [ebp - 0x71c]
mov ecx, dword [esi + 8]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x714], eax
xor eax, eax
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x144], eax
mov eax, dword [esi + 4]
add eax, eax
add ecx, ecx
add eax, eax
add ecx, ecx
add eax, eax
add ecx, ecx
mov dword [ebp - 0x61c], edi
cmp dword [edi + 0x54], eax
jne 0x1004a393
cmp dword [edi + 0x58], ecx
jne 0x1004a393
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x30]
mov ebx, dword [esi + 0x24]
add ecx, ecx
add edx, edx
add ecx, ecx
add ecx, ecx
add edx, edx
add eax, eax
add edx, edx
add ebx, ebx
mov dword [ebp - 0x208], ecx
lea ecx, [ebp - 0x210]
add eax, eax
mov dword [ebp - 0x20c], edx
add ebx, ebx
push ecx
lea edx, [edi + 0x5c]
add eax, eax
add ebx, ebx
push edx
mov dword [ebp - 0x210], ebx
mov dword [ebp - 0x204], eax
call dword [sym.imp.USER32.dll_EqualRect]
test eax, eax
jne 0x1004a3bc
sub esp, 0x10
mov dword [ebp - 0x618], esp
mov eax, esp
lea ecx, [esi + 0x24]
push ecx
push eax
call dword [sym.imp.USER32.dll_CopyRect]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
push eax
push ecx
lea ecx, [edi - 0xa4]
call fcn.10041b40
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
push 0
push 0x2710
push edx
push eax
call fcn.100a7f60
fld qword [ebp - 0x71c]
push 0
lea edx, [ebp - 0x6ec]
push edx
sub esp, 8
fstp qword [esp]
lea ecx, [edi - 0xa4]
push eax
mov dword [ebp - 0x6d8], eax
call fcn.10031350
mov dword [ebp - 0x604], eax
test eax, eax
jne 0x1004a40b
mov eax, 1
jmp 0x1004e066
xor eax, eax
cmp dword [edi + 0x10], eax
je 0x1004a42f
mov edx, dword [edi + 0x14]
test edx, edx
je 0x1004a42d
mov edi, dword [edi + 0xc]
mov ecx, edi
mov edi, edi
cmp dword [ecx], 0
jne 0x1004a450
inc eax
add ecx, 4
cmp eax, edx
jb 0x1004a420
xor eax, eax
test eax, eax
je 0x1004a59f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x1004a7ec
mov ebx, eax
test eax, eax
jne 0x1004a455
xor ecx, ecx
jmp 0x1004a48d
mov eax, dword [edi + eax*4]
jmp 0x1004a42f
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x1004a48d
mov edx, dword [ebp - 0x61c]
mov edi, dword [edx + 0x14]
mov eax, dword [eax + 0xc]
xor edx, edx
div edi
inc edx
lea ecx, [ecx]
cmp edx, edi
jae 0x1004a48d
mov eax, dword [ebp - 0x61c]
mov eax, dword [eax + 0xc]
cmp dword [eax + edx*4], 0
lea eax, [eax + edx*4]
je 0x1004a488
mov ecx, dword [eax]
inc edx
test ecx, ecx
je 0x1004a470
mov edi, dword [ebx]
mov edx, dword [ebp - 0x61c]
mov eax, ecx
mov ecx, dword [ebx + 4]
cmp edi, dword [edx - 0x98]
jae 0x1004a7f6
mov ebx, dword [ebp - 0x61c]
mov edx, edi
imul edx, edx, 0x34
add edx, dword [ebx - 0x9c]
mov ebx, dword [ebp - 0x6d8]
add ebx, 0xffff8ad0
cmp dword [edx + 0x2c], ebx
jle 0x1004a4dd
mov ebx, dword [ebp - 0x6d8]
add ebx, 0x7530
cmp dword [edx + 0x28], ebx
jle 0x1004a597
test ecx, ecx
je 0x1004a4e9
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov ecx, dword [ebp - 0x61c]
mov ebx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0xc]
xor edx, edx
mov eax, edi
div ebx
mov dword [ebp - 0x618], ebx
mov dword [ebp - 0x648], ecx
test ecx, ecx
je 0x1004a56b
mov eax, ecx
mov ecx, dword [eax + edx*4]
xor ebx, ebx
test ecx, ecx
je 0x1004a56b
cmp dword [ecx + 0xc], edi
jne 0x1004a51f
cmp dword [ecx], edi
je 0x1004a52a
mov ebx, ecx
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x1004a516
jmp 0x1004a56b
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x1004a7ec
mov eax, dword [ecx + 0xc]
xor edx, edx
div dword [ebp - 0x618]
test ebx, ebx
jne 0x1004a556
mov eax, dword [ecx + 8]
mov edi, dword [ebp - 0x648]
mov dword [edi + edx*4], eax
jmp 0x1004a55c
mov edx, dword [ecx + 8]
mov dword [ebx + 8], edx
push ecx
mov ecx, dword [ebp - 0x61c]
add ecx, 0xc
call fcn.10040190
mov ecx, dword [ebp - 0x61c]
xor eax, eax
cmp dword [ecx + 0x10], eax
je 0x1004a597
mov edx, dword [ecx + 0x14]
test edx, edx
je 0x1004a595
mov edi, dword [ecx + 0xc]
mov ecx, edi
cmp dword [ecx], 0
jne 0x1004a7e4
inc eax
add ecx, 4
cmp eax, edx
jb 0x1004a584
xor eax, eax
test eax, eax
jne 0x1004a437
mov edi, dword [ebp - 0x604]
mov eax, dword [ebp - 0x6ec]
mov ecx, dword [ebp - 0x61c]
add edi, 8
push edi
add ecx, 0x3c
push eax
call fcn.100408f0
xor ebx, ebx
mov dword [ebp - 0x6ac], ebx
mov dword [ebp - 0x6a8], ebx
mov dword [ebp - 0x6a4], ebx
mov dword [ebp - 0x6a0], ebx
mov ecx, dword [ebp - 0x604]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 4], ebx
mov dword [ebp - 0x648], eax
test eax, eax
jle 0x1004a6cd
cmp ebx, dword [edi + 4]
jae 0x1004a7f6
mov eax, dword [edi]
mov edx, dword [eax + ebx*4]
lea ecx, [ebx*4]
mov eax, edx
mov dword [ebp - 0x6f8], edx
mov edx, dword [ebp - 0x61c]
cmp eax, dword [edx - 0x98]
jae 0x1004a7f6
imul eax, eax, 0x34
add eax, dword [edx - 0x9c]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x6f4], eax
cmp ebx, dword [edi + 4]
jae 0x1004a7f6
mov eax, dword [edi]
mov eax, dword [eax + ecx]
cmp eax, dword [edx - 0x98]
jae 0x1004a7f6
imul eax, eax, 0x34
add eax, dword [edx - 0x9c]
mov ecx, dword [eax + 0x30]
mov eax, dword [ebp - 0x6a8]
mov dword [ebp - 0x6f0], ecx
mov dword [ebp - 0x618], eax
cmp eax, dword [ebp - 0x6a4]
jb 0x1004a68a
mov edx, eax
inc edx
push edx
lea ecx, [ebp - 0x6ac]
call fcn.1003fec0
test al, al
je 0x1004a800
mov eax, dword [ebp - 0x618]
mov ecx, dword [ebp - 0x6ac]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
test eax, eax
je 0x1004a6ba
mov edx, dword [ebp - 0x6f8]
mov ecx, dword [ebp - 0x6f4]
mov dword [eax], edx
mov edx, dword [ebp - 0x6f0]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
inc dword [ebp - 0x6a8]
inc ebx
cmp ebx, dword [ebp - 0x648]
jl 0x1004a5f2
mov edi, dword [ebp - 0x6a8]
mov ebx, dword [ebp - 0x6ac]
push 0x1003f880
push 0xc
push edi
push ebx
call fcn.100aa640
add esp, 0x10
mov dword [ebp - 0x648], 0
test edi, edi
jle 0x1004e010
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
mov eax, dword [ebp - 0x648]
cmp eax, dword [ebp - 0x6a8]
jae 0x1004a7f6
mov ecx, dword [ebp - 0x6ac]
mov edx, dword [ebp - 0x61c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
mov eax, dword [eax]
mov dword [ebp - 0x608], eax
cmp eax, dword [edx - 0x98]
jae 0x1004a7f6
mov edi, eax
imul eax, eax, 0x34
mov ecx, edx
add eax, dword [ecx - 0x9c]
lea ecx, [ebp - 0x750]
push eax
call fcn.10032360
fld qword [ebp - 0x71c]
sub esp, 8
fstp qword [esp]
push edi
mov edi, dword [ebp - 0x61c]
add edi, 0xffffff5c
mov ecx, edi
mov byte [ebp - 4], 1
call fcn.10030ea0
fld qword [ebp - 0x71c]
mov edx, dword [ebp - 0x6d8]
mov ecx, dword [ebp - 0x608]
sub esp, 8
sub edx, eax
fstp qword [esp]
mov dword [ebp - 0x618], eax
mov eax, dword [ebp - 0x61c]
push ecx
mov ecx, edi
mov dword [eax + 0x6c], edx
call fcn.10030f20
sub eax, dword [ebp - 0x618]
mov edx, dword [ebp - 0x61c]
mov dword [edx + 0x70], eax
mov eax, dword [ebp - 0x608]
push eax
mov ecx, edi
call fcn.100494d0
mov edi, eax
mov dword [ebp - 0x674], edi
test edi, edi
jne 0x1004a80a
lea ecx, [ebp - 0x750]
mov byte [ebp - 4], al
call fcn.1002f1f0
jmp 0x1004dfeb
mov eax, dword [edi + eax*4]
jmp 0x1004a597
push 0x80004005
call fcn.10001150
push 0x80070057
call fcn.10001150
push 0x8007000e
call fcn.10001150
mov ecx, dword [edi + 0x70]
mov dword [ebp - 0x600], ecx
mov edx, dword [edi + 0x74]
mov dword [ebp - 0x5fc], edx
mov eax, dword [edi + 0x78]
mov dword [ebp - 0x5f8], eax
mov ecx, dword [edi + 0x7c]
mov dword [ebp - 0x5f4], ecx
mov edx, dword [edi + 0x60]
mov dword [ebp - 0x160], edx
mov eax, dword [edi + 0x64]
mov dword [ebp - 0x15c], eax
mov eax, dword [edi + 0x68]
mov dword [ebp - 0x158], eax
mov ecx, dword [edi + 0x6c]
mov dword [ebp - 0x154], ecx
sub ecx, dword [ebp - 0x15c]
sub eax, edx
mov dword [ebp - 0x644], ecx
xor ecx, ecx
mov dword [ebp - 0x700], eax
mov eax, dword [edi + 0x5c]
mov byte [ebp - 0x62d], 0
mov byte [ebp - 0x639], 0
mov dword [ebp - 0x610], ecx
mov dword [ebp - 0x638], ecx
mov dword [ebp - 0x634], ecx
cmp eax, ecx
je 0x1004a8a5
mov edx, dword [eax + 0x1bc]
xor eax, eax
mov dword [ebp - 0x60c], edx
mov dword [ebp - 0x618], eax
jmp 0x1004a8c2
xor eax, eax
mov dword [ebp - 0x60c], ecx
mov dword [ebp - 0x618], eax
jmp 0x1004a8c2
xor ecx, ecx
cmp dword [edi + eax*4 + 0x30], ecx
je case.default.0x1004a8d5
cmp eax, 4
ja case.default.0x1004a8d5
jmp dword [eax*4 + 0x1004e084]
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov dword [ebp - 0x624], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x708], edx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x614], ecx
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x710], edx
mov dword [ebp - 0x620], ecx
cmp eax, ecx
jge 0x1004a91f
mov edx, ecx
mov ecx, eax
mov dword [ebp - 0x620], eax
mov eax, edx
test ecx, ecx
jg 0x1004a938
test eax, eax
jg 0x1004a938
mov eax, dword [ebp - 0x61c]
mov eax, dword [eax + 0x70]
xor ecx, ecx
mov dword [ebp - 0x620], ecx
mov edx, dword [ebp - 0x61c]
mov edx, dword [edx + 0x6c]
mov dword [ebp - 0x604], edx
cmp edx, ecx
jg 0x1004a95c
mov eax, dword [ebp - 0x708]
mov ecx, dword [ebp - 0x624]
jmp 0x1004aa01
mov ecx, dword [ebp - 0x710]
cmp dword [ebp - 0x708], ecx
jne 0x1004a989
mov ecx, dword [ebp - 0x624]
cmp ecx, dword [ebp - 0x614]
jne 0x1004a989
mov edx, dword [ebp - 0x708]
mov dword [ebp - 0x6e8], edx
jmp 0x1004aa07
mov edx, dword [ebp - 0x620]
mov ecx, dword [ebp - 0x604]
cmp edx, ecx
jge 0x1004a9f5
cmp ecx, eax
jge 0x1004a9f5
sub ecx, edx
mov dword [ebp - 0x604], ecx
fild dword [ebp - 0x604]
sub eax, edx
mov dword [ebp - 0x604], eax
fild dword [ebp - 0x604]
fdivp st(1)
fld1
fsub st(1)
fild dword [ebp - 0x708]
fmul st(1)
fild dword [ebp - 0x710]
fmul st(3)
faddp st(1)
call fcn.100a7850
fimul dword [ebp - 0x624]
mov dword [ebp - 0x6e8], eax
fild dword [ebp - 0x614]
fmulp st(2)
faddp st(1)
call fcn.100a7850
mov ecx, eax
jmp 0x1004aa07
mov eax, dword [ebp - 0x710]
mov ecx, dword [ebp - 0x614]
mov dword [ebp - 0x6e8], eax
mov eax, dword [edi + 0x20]
cmp eax, 3
jg 0x1004aa17
sub ecx, dword [ebp - 0x644]
jmp 0x1004aa2a
cmp eax, 6
jg 0x1004aa2a
mov eax, dword [ebp - 0x644]
inc eax
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x614], ecx
cdq
mov ecx, 3
idiv ecx
cmp edx, 1
jne 0x1004aa48
mov eax, dword [ebp - 0x6e8]
jmp 0x1004aa70
test edx, edx
jne 0x1004aa5a
mov eax, dword [ebp - 0x6e8]
sub eax, dword [ebp - 0x700]
jmp 0x1004aa70
mov eax, dword [ebp - 0x700]
inc eax
cdq
sub eax, edx
mov edx, eax
mov eax, dword [ebp - 0x6e8]
sar edx, 1
sub eax, edx
mov ecx, dword [ebp - 0x700]
lea edx, [eax + ecx]
mov ecx, dword [ebp - 0x644]
mov dword [ebp - 0x758], edx
mov edx, dword [ebp - 0x614]
add ecx, edx
mov dword [ebp - 0x15c], edx
mov edx, dword [ebp - 0x758]
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x158], edx
mov dword [ebp - 0x154], ecx
cmp dword [edi + 0x2c], 1
jne 0x1004ade9
mov ecx, dword [ebp - 0x61c]
mov eax, dword [ecx + 0x5c]
mov ecx, dword [ecx + 0x60]
push ecx
push eax
lea eax, [ebp - 0x160]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
jmp 0x1004ade9
mov eax, dword [edi + 0x34]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov dword [ebp - 0x638], edx
mov dword [ebp - 0x634], ecx
mov byte [ebp - 0x639], 1
jmp case.default.0x1004a8d5
mov eax, dword [edi + 0x38]
mov edx, dword [eax + 0x2c]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x614], edx
mov edx, dword [eax + 0x30]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x604], edx
mov dword [ebp - 0x640], eax
cmp ecx, 0xffffffff
jne 0x1004ab42
cmp eax, ecx
jne 0x1004ab42
mov eax, dword [ebp - 0x61c]
mov eax, dword [eax + 0x70]
xor ecx, ecx
sub eax, edx
mov edx, dword [ebp - 0x61c]
mov dword [ebp - 0x604], eax
mov eax, dword [edx + 0x70]
mov dword [ebp - 0x640], eax
mov eax, dword [ebp - 0x61c]
mov eax, dword [eax + 0x6c]
cmp eax, ecx
jge 0x1004ab60
mov ecx, dword [edi + 0x38]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x610], edx
jmp case.default.0x1004a8d5
mov edx, dword [ebp - 0x614]
cmp eax, edx
jge 0x1004abab
sub eax, ecx
mov dword [ebp - 0x604], eax
fild dword [ebp - 0x604]
sub edx, ecx
mov dword [ebp - 0x604], edx
fild dword [ebp - 0x604]
mov eax, dword [edi + 0x38]
fdivp st(1)
fild dword [eax + 4]
fld1
fsub st(2)
fmulp st(1)
fild dword [eax + 8]
fmulp st(2)
faddp st(1)
call fcn.100a7850
mov dword [ebp - 0x610], eax
jmp case.default.0x1004a8d5
mov edx, dword [ebp - 0x604]
cmp eax, edx
jge 0x1004abc6
mov eax, dword [edi + 0x38]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x610], ecx
jmp case.default.0x1004a8d5
mov ecx, dword [ebp - 0x640]
cmp eax, ecx
jge 0x1004ac11
sub eax, edx
mov dword [ebp - 0x604], eax
fild dword [ebp - 0x604]
sub ecx, edx
mov dword [ebp - 0x604], ecx
fild dword [ebp - 0x604]
mov eax, dword [edi + 0x38]
fdivp st(1)
fild dword [eax + 8]
fld1
fsub st(2)
fmulp st(1)
fild dword [eax + 0xc]
fmulp st(2)
faddp st(1)
call fcn.100a7850
mov dword [ebp - 0x610], eax
jmp case.default.0x1004a8d5
mov edx, dword [edi + 0x38]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x610], eax
jmp case.default.0x1004a8d5
mov eax, dword [edi + 0x2c]
cmp eax, 1
jne 0x1004ac3b
mov ecx, dword [ebp - 0x61c]
mov edx, dword [ecx + 0x5c]
mov dword [ebp - 0x614], edx
jmp 0x1004ac47
mov dword [ebp - 0x614], ecx
mov ecx, dword [ebp - 0x61c]
cmp eax, 1
jne 0x1004ac57
mov eax, dword [ecx + 0x64]
mov dword [ebp - 0x620], eax
jmp 0x1004ac60
mov ecx, dword [ecx + 0x54]
mov dword [ebp - 0x620], ecx
mov eax, dword [edi + 0x3c]
cmp dword [eax + 8], 0
je 0x1004ac90
mov edx, dword [ebp - 0x61c]
fild dword [edx + 0x6c]
fmul qword [0x100f0bd8]
fidiv dword [eax + 4]
call fcn.100a7850
mov ecx, dword [ebp - 0x614]
sub ecx, eax
sub ecx, dword [ebp - 0x700]
jmp 0x1004acaf
mov ecx, dword [ebp - 0x61c]
fild dword [ecx + 0x6c]
fmul qword [0x100e7dd8]
fidiv dword [eax + 4]
call fcn.100a7850
mov ecx, dword [ebp - 0x620]
sub ecx, eax
mov eax, dword [ebp - 0x614]
sar eax, 3
mov dword [ebp - 0x220], eax
mov eax, dword [ebp - 0x5fc]
mov dword [ebp - 0x160], ecx
add ecx, dword [ebp - 0x700]
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp - 0x620]
mov dword [ebp - 0x158], ecx
mov ecx, dword [ebp - 0x5f4]
sar eax, 3
mov dword [ebp - 0x218], eax
mov dword [ebp - 0x214], ecx
lea edx, [ebp - 0x220]
jmp 0x1004add8
mov edx, dword [edi + 0x40]
cmp dword [edx + 0x10], ecx
mov ecx, dword [ebp - 0x61c]
fild dword [ecx + 0x6c]
mov eax, edx
je 0x1004ad35
fmul qword [0x100f0bd8]
fidiv dword [eax + 0xc]
call fcn.100a7850
mov edx, eax
mov eax, dword [edi + 0x40]
mov ecx, dword [eax + 4]
sub ecx, edx
sub ecx, dword [ebp - 0x644]
jmp 0x1004ad4b
fmul qword [0x100e7dd8]
fidiv dword [eax + 0xc]
call fcn.100a7850
mov ecx, dword [edi + 0x40]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov edx, dword [ebp - 0x644]
add edx, ecx
mov dword [ebp - 0x154], edx
mov dword [ebp - 0x15c], ecx
mov edx, dword [edi + 0x40]
mov edx, dword [edx + 4]
mov eax, dword [edi + 0x40]
mov eax, dword [eax + 8]
add edx, 4
sar edx, 3
add eax, 4
sar eax, 3
cmp dword [edi + 0x2c], 1
mov dword [ebp - 0x604], edx
mov dword [ebp - 0x20c], edx
mov edx, dword [esi + 4]
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x208], edx
mov dword [ebp - 0x204], eax
jne 0x1004add2
mov edx, dword [ebp - 0x61c]
mov edx, dword [edx + 0x60]
add dword [ebp - 0x154], edx
add ecx, edx
mov dword [ebp - 0x15c], ecx
mov ecx, dword [ebp - 0x604]
sar edx, 3
add ecx, edx
add eax, edx
mov dword [ebp - 0x20c], ecx
mov dword [ebp - 0x204], eax
lea edx, [ebp - 0x210]
push edx
lea eax, [ebp - 0x600]
push eax
mov ecx, eax
push ecx
call dword [sym.imp.USER32.dll_IntersectRect]
mov byte [ebp - 0x62d], 1
mov eax, dword [ebp - 0x618]
inc eax
mov dword [ebp - 0x618], eax
cmp eax, 5
jl 0x1004a8c0
cmp byte [ebp - 0x62d], 0
jne 0x1004ae70
cmp byte [ebp - 0x639], 0
jne 0x1004ae70
cmp byte [edi + 0x28], 0
jne 0x1004ae70
mov eax, dword [ebp - 0x61c]
mov edx, dword [eax - 0x58]
mov ecx, dword [ebp - 0x72c]
push edx
mov edx, dword [ebp - 0x608]
push ecx
mov ecx, dword [ebp - 0x6ec]
push edx
push ecx
push edi
lea edx, [ebp - 0x460]
push edx
lea ecx, [eax + 0x3c]
call fcn.100418e0
mov ecx, dword [eax]
mov dword [ebp - 0x160], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x15c], edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x158], ecx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x154], edx
mov eax, dword [edi + 0x20]
cdq
mov ecx, 3
idiv ecx
cmp edx, 1
jne 0x1004ae88
mov ecx, dword [ebp - 0x160]
jmp 0x1004aea8
cmp edx, 2
jne 0x1004aea2
mov eax, dword [ebp - 0x160]
add eax, dword [ebp - 0x158]
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
jmp 0x1004aea8
mov ecx, dword [ebp - 0x158]
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x650], ecx
cmp eax, 3
jg 0x1004aebe
mov eax, dword [ebp - 0x154]
jmp 0x1004aed4
cmp eax, 6
mov eax, dword [ebp - 0x15c]
jg 0x1004aed4
add eax, dword [ebp - 0x154]
cdq
sub eax, edx
sar eax, 1
cmp byte [ebp - 0x639], 0
jne 0x1004aee9
mov dword [ebp - 0x638], ecx
mov dword [ebp - 0x634], eax
mov eax, dword [ebp - 0x15c]
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x40], edx
mov edx, dword [ebp - 0x5f8]
mov dword [ebp - 0x62c], ecx
mov ecx, dword [ebp - 0x5fc]
mov dword [ebp - 0x6f0], eax
mov dword [ebp - 0x628], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x600]
mov dword [ebp - 0x30], edx
mov edx, dword [ebp - 0x5fc]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x5f4]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 8]
xor edx, edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x14], eax
mov eax, dword [edi + 8]
test eax, eax
je 0x1004b172
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x1004a7ec
mov ecx, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x624], edx
mov dword [ebp - 0x644], ecx
cdq
mov ecx, 3
idiv ecx
cmp edx, 1
jne 0x1004afa4
mov edx, dword [ebp - 0x650]
mov dword [ebp - 0x62c], edx
jmp 0x1004afd7
test edx, edx
jne 0x1004afb9
mov eax, dword [ebp - 0x650]
mov ecx, dword [ebp - 0x624]
sub eax, dword [ecx + 0x1c]
jmp 0x1004afd1
mov edx, dword [ebp - 0x624]
mov eax, dword [edx + 0x1c]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [ebp - 0x650]
sar ecx, 1
sub eax, ecx
mov dword [ebp - 0x62c], eax
cmp byte [edi + 0x88], 0
mov edx, dword [ebp - 0x610]
mov eax, dword [ebp - 0x61c]
mov ecx, dword [eax + 0x6c]
mov eax, dword [ebp - 0x638]
push edx
mov edx, dword [ebp - 0x634]
push ecx
mov ecx, dword [ebp - 0x628]
push edx
mov edx, dword [ebp - 0x62c]
push eax
mov eax, dword [ebp - 0x60c]
push ecx
push edx
push eax
je 0x1004b12b
lea ecx, [ebp - 0x50]
push ecx
mov ecx, dword [ebp - 0x624]
push esi
lea edx, [ebp - 0x2e0]
push edx
call fcn.100453a0
push eax
lea eax, [ebp - 0x150]
push eax
mov ecx, eax
push ecx
call ebx
mov edx, dword [ebp - 0x610]
mov eax, dword [ebp - 0x61c]
mov ecx, dword [eax + 0x6c]
mov eax, dword [ebp - 0x638]
push edx
mov edx, dword [ebp - 0x634]
push ecx
mov ecx, dword [ebp - 0x628]
push edx
mov edx, dword [ebp - 0x62c]
push eax
mov eax, dword [ebp - 0x60c]
push ecx
push edx
push eax
lea ecx, [ebp - 0x40]
push ecx
mov ecx, dword [ebp - 0x624]
push esi
lea edx, [ebp - 0x5c0]
push edx
call fcn.100453a0
push eax
lea eax, [ebp - 0x150]
push eax
mov ecx, eax
push ecx
call ebx
mov edx, dword [ebp - 0x610]
mov eax, dword [ebp - 0x61c]
mov ecx, dword [eax + 0x6c]
mov eax, dword [ebp - 0x638]
push edx
mov edx, dword [ebp - 0x634]
push ecx
mov ecx, dword [ebp - 0x628]
push edx
mov edx, dword [ebp - 0x62c]
push eax
mov eax, dword [ebp - 0x60c]
push ecx
push edx
push eax
lea ecx, [ebp - 0x30]
push ecx
mov ecx, dword [ebp - 0x624]
push esi
lea edx, [ebp - 0x300]
push edx
call fcn.100453a0
push eax
lea eax, [ebp - 0x150]
push eax
mov ecx, eax
push ecx
call ebx
mov edx, dword [ebp - 0x610]
mov eax, dword [ebp - 0x61c]
mov ecx, dword [eax + 0x6c]
mov eax, dword [ebp - 0x638]
push edx
mov edx, dword [ebp - 0x634]
push ecx
mov ecx, dword [ebp - 0x628]
push edx
mov edx, dword [ebp - 0x62c]
push eax
push ecx
mov eax, dword [ebp - 0x60c]
push edx
push eax
lea ecx, [ebp - 0x20]
lea edx, [ebp - 0x480]
jmp 0x1004b137
lea ecx, [ebp - 0x600]
lea edx, [ebp - 0x320]
push ecx
mov ecx, dword [ebp - 0x624]
push esi
push edx
call fcn.100453a0
push eax
lea eax, [ebp - 0x150]
push eax
mov ecx, eax
push ecx
call ebx
mov eax, dword [ebp - 0x624]
mov edx, dword [eax + 0x24]
add edx, dword [eax + 0x20]
mov eax, dword [ebp - 0x644]
add dword [ebp - 0x628], edx
test eax, eax
jne 0x1004af66
xor eax, eax
mov dword [ebp - 0x62c], eax
mov eax, dword [ebp - 0x6f0]
mov dword [ebp - 0x628], eax
mov eax, dword [edi + 8]
test eax, eax
je 0x1004c63c
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x1004a7ec
mov ecx, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x624], edx
mov dword [ebp - 0x644], ecx
cdq
mov ecx, 3
idiv ecx
xor ecx, ecx
cmp edx, 1
jne 0x1004b1cb
mov eax, dword [ebp - 0x650]
jmp 0x1004b1f8
cmp edx, ecx
jne 0x1004b1e0
mov eax, dword [ebp - 0x650]
mov edx, dword [ebp - 0x624]
sub eax, dword [edx + 0x1c]
jmp 0x1004b1f8
mov eax, dword [ebp - 0x624]
mov eax, dword [eax + 0x1c]
cdq
sub eax, edx
mov edx, eax
mov eax, dword [ebp - 0x650]
sar edx, 1
sub eax, edx
cmp byte [edi + 0x88], 0
mov edx, dword [ebp - 0x61c]
mov edx, dword [edx + 0x6c]
mov dword [ebp - 0x62c], eax
mov dword [ebp - 0x618], edx
je 0x1004c214
mov dword [ebp - 0x658], eax
mov eax, dword [ebp - 0x624]
mov eax, dword [eax + 4]
mov dword [ebp - 0x170], ecx
mov dword [ebp - 0x16c], ecx
mov dword [ebp - 0x168], ecx
mov dword [ebp - 0x164], ecx
mov dword [ebp - 0x620], eax
cmp eax, ecx
je 0x1004b5f5
jmp 0x1004b257
mov eax, dword [ebp - 0x620]
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
test eax, eax
je 0x1004a7ec
mov eax, dword [ebp - 0x620]
mov edi, dword [eax + 8]
cmp byte [edi + 0x8d], 0
mov edx, dword [eax]
mov dword [ebp - 0x620], edx
jne 0x1004b5f5
fld qword [edi + 0xb0]
fadd qword [edi + 0xa8]
fldz
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x1004b5dc
cmp dword [edi + 0x154], 2
jne 0x1004b2bb
mov eax, dword [ebp - 0x618]
cmp eax, dword [edi + 0x158]
jl 0x1004b5dc
mov ecx, dword [ebp - 0x624]
mov eax, dword [ecx + 0x20]
sub eax, dword [edi + 0x164]
mov edx, dword [ebp - 0x610]
add eax, dword [ebp - 0x628]
mov dword [ebp - 0x608], eax
movzx eax, byte [edi + 0xda]
mov dword [ebp - 0x614], eax
test edx, edx
jle 0x1004b310
mov ecx, 0xff
sub ecx, eax
imul ecx, edx
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add dword [ebp - 0x614], eax
mov eax, dword [edi + 0xd0]
mov ecx, eax
movzx edx, al
sar ecx, 0x10
and ecx, 0xff
and eax, 0xff00
shl edx, 0x10
add ecx, edx
mov edx, dword [ebp - 0x638]
add ecx, eax
or eax, 0xffffffff
sub eax, dword [ebp - 0x614]
mov dword [ebp - 0xf4], 0xffffffff
shl eax, 0x18
or ecx, eax
mov dword [ebp - 0xf8], ecx
mov ecx, dword [ebp - 0x634]
xor eax, eax
push ecx
mov ecx, dword [ebp - 0x658]
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x608]
push edx
push eax
push ecx
mov ecx, edi
call fcn.10044dd0
mov eax, dword [edi + 0xa4]
test eax, eax
jne 0x1004b590
mov eax, dword [esi + 0x34]
sub eax, 0
je 0x1004b54c
dec eax
je 0x1004b47c
dec eax
jne 0x1004b5dc
cmp byte [edi + 0xd8], al
jne 0x1004b3cf
cmp byte [edi + 0xd9], al
jne 0x1004b3cf
cmp dword [ebp - 0x610], eax
jne 0x1004b3cf
mov al, 1
jmp 0x1004b3d1
xor al, al
mov ecx, dword [ebp - 0x608]
push 1
push eax
mov eax, dword [esi + 8]
add eax, eax
add eax, eax
sub ecx, eax
mov eax, dword [ebp - 0x60c]
lea edx, [ebp - 0xf8]
push edx
mov edx, dword [ebp - 0x658]
push ecx
push edx
push eax
lea ecx, [ebp - 0x50]
push ecx
push esi
lea edx, [ebp - 0x230]
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x170]
push eax
mov ecx, eax
push ecx
call ebx
cmp byte [edi + 0xd8], 0
jne 0x1004b438
cmp byte [edi + 0xd9], 0
jne 0x1004b438
cmp dword [ebp - 0x610], 0
jne 0x1004b438
mov al, 1
jmp 0x1004b43a
xor al, al
mov ecx, dword [ebp - 0x658]
push 1
push eax
mov eax, dword [ebp - 0x608]
lea edx, [ebp - 0xf8]
push edx
push eax
push ecx
lea ecx, [ebp - 0x540]
mov edx, dword [ebp - 0x60c]
push edx
lea eax, [ebp - 0x50]
push eax
push esi
push ecx
mov ecx, edi
call fcn.10057bc0
push eax
lea edx, [ebp - 0x170]
push edx
mov eax, edx
push eax
jmp 0x1004b5da
cmp byte [edi + 0xd8], 0
jne 0x1004b49b
cmp byte [edi + 0xd9], 0
jne 0x1004b49b
cmp dword [ebp - 0x610], 0
jne 0x1004b49b
mov al, 1
jmp 0x1004b49d
xor al, al
mov edx, dword [ebp - 0x608]
push 1
push eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0xf8]
push ecx
mov ecx, dword [ebp - 0x658]
push edx
mov edx, dword [ebp - 0x60c]
add eax, eax
sub ecx, eax
push ecx
push edx
lea eax, [ebp - 0x50]
push eax
push esi
lea ecx, [ebp - 0x340]
push ecx
mov ecx, edi
call fcn.10057bc0
push eax
lea edx, [ebp - 0x170]
push edx
mov eax, edx
push eax
call ebx
cmp byte [edi + 0xd8], 0
jne 0x1004b502
cmp byte [edi + 0xd9], 0
jne 0x1004b502
cmp dword [ebp - 0x610], 0
jne 0x1004b502
mov al, 1
jmp 0x1004b504
xor al, al
mov edx, dword [ebp - 0x608]
push 1
push eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0xf8]
push ecx
mov ecx, dword [ebp - 0x658]
push edx
lea edx, [ecx + eax*2]
mov eax, dword [ebp - 0x60c]
push edx
push eax
lea ecx, [ebp - 0x50]
push ecx
push esi
lea edx, [ebp - 0x4a0]
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x170]
push eax
mov ecx, eax
push ecx
jmp 0x1004b5da
cmp byte [edi + 0xd8], 0
jne 0x1004b56b
cmp byte [edi + 0xd9], 0
jne 0x1004b56b
cmp dword [ebp - 0x610], 0
jne 0x1004b56b
mov al, 1
jmp 0x1004b56d
xor al, al
mov ecx, dword [ebp - 0x658]
push 1
push eax
mov eax, dword [ebp - 0x608]
lea edx, [ebp - 0xf8]
push edx
push eax
push ecx
lea ecx, [ebp - 0x360]
jmp 0x1004b458
cmp eax, 1
jne 0x1004b5dc
mov ecx, dword [edi + 0x150]
test ecx, ecx
je 0x1004b5dc
push 0
push eax
mov eax, dword [ebp - 0x608]
lea edx, [ebp - 0xf8]
push edx
mov edx, dword [ebp - 0x658]
push eax
mov eax, dword [ebp - 0x60c]
push edx
push eax
lea edx, [ebp - 0x50]
push edx
push esi
lea eax, [ebp - 0x5a0]
push eax
call fcn.10057bc0
push eax
lea ecx, [ebp - 0x170]
push ecx
mov edx, ecx
push edx
call ebx
mov eax, dword [edi + 0x160]
add dword [ebp - 0x658], eax
cmp dword [ebp - 0x620], 0
jne 0x1004b251
lea ecx, [ebp - 0x170]
push ecx
lea edx, [ebp - 0x150]
push edx
mov eax, edx
push eax
call ebx
mov ecx, dword [ebp - 0x61c]
mov edx, dword [ecx + 0x6c]
mov eax, dword [ebp - 0x62c]
mov ecx, dword [ebp - 0x624]
xor edi, edi
mov dword [ebp - 0x660], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x618], edx
mov dword [ebp - 0x190], edi
mov dword [ebp - 0x18c], edi
mov dword [ebp - 0x188], edi
mov dword [ebp - 0x184], edi
mov dword [ebp - 0x620], eax
cmp eax, edi
je 0x1004b9fa
jmp 0x1004b65e
mov eax, dword [ebp - 0x620]
xor edi, edi
xor edx, edx
cmp eax, edi
setne dl
cmp edx, edi
je 0x1004a7ec
mov eax, dword [ebp - 0x620]
mov edi, dword [eax + 8]
cmp byte [edi + 0x8d], 0
mov ecx, dword [eax]
mov dword [ebp - 0x620], ecx
jne 0x1004b9fa
fld qword [edi + 0xb0]
fadd qword [edi + 0xa8]
fldz
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x1004b9e1
cmp dword [edi + 0x154], 2
jne 0x1004b6c0
mov edx, dword [ebp - 0x618]
cmp edx, dword [edi + 0x158]
jl 0x1004b9e1
mov eax, dword [ebp - 0x624]
mov eax, dword [eax + 0x20]
sub eax, dword [edi + 0x164]
mov edx, dword [ebp - 0x610]
add eax, dword [ebp - 0x628]
mov dword [ebp - 0x608], eax
movzx eax, byte [edi + 0xda]
mov dword [ebp - 0x614], eax
test edx, edx
jle 0x1004b715
mov ecx, 0xff
sub ecx, eax
imul ecx, edx
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add dword [ebp - 0x614], ecx
mov eax, dword [edi + 0xd0]
mov edx, eax
movzx ecx, al
sar edx, 0x10
and edx, 0xff
shl ecx, 0x10
add edx, ecx
mov ecx, dword [ebp - 0x634]
and eax, 0xff00
add edx, eax
or eax, 0xffffffff
sub eax, dword [ebp - 0x614]
push ecx
mov ecx, dword [ebp - 0x660]
shl eax, 0x18
or edx, eax
xor eax, eax
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0x638]
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x608]
push edx
push eax
push ecx
mov ecx, edi
mov dword [ebp - 0x10c], 0xffffffff
call fcn.10044dd0
mov eax, dword [edi + 0xa4]
test eax, eax
jne 0x1004b995
mov eax, dword [esi + 0x34]
sub eax, 0
je 0x1004b951
dec eax
je 0x1004b881
dec eax
jne 0x1004b9e1
cmp byte [edi + 0xd8], al
jne 0x1004b7d4
cmp byte [edi + 0xd9], al
jne 0x1004b7d4
cmp dword [ebp - 0x610], eax
jne 0x1004b7d4
mov al, 1
jmp 0x1004b7d6
xor al, al
mov ecx, dword [ebp - 0x608]
push 1
push eax
mov eax, dword [esi + 8]
add eax, eax
add eax, eax
sub ecx, eax
mov eax, dword [ebp - 0x60c]
lea edx, [ebp - 0x110]
push edx
mov edx, dword [ebp - 0x660]
push ecx
push edx
push eax
lea ecx, [ebp - 0x40]
push ecx
push esi
lea edx, [ebp - 0x380]
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x190]
push eax
mov ecx, eax
push ecx
call ebx
cmp byte [edi + 0xd8], 0
jne 0x1004b83d
cmp byte [edi + 0xd9], 0
jne 0x1004b83d
cmp dword [ebp - 0x610], 0
jne 0x1004b83d
mov al, 1
jmp 0x1004b83f
xor al, al
mov ecx, dword [ebp - 0x660]
push 1
push eax
mov eax, dword [ebp - 0x608]
lea edx, [ebp - 0x110]
push edx
push eax
push ecx
lea ecx, [ebp - 0x4c0]
mov edx, dword [ebp - 0x60c]
push edx
lea eax, [ebp - 0x40]
push eax
push esi
push ecx
mov ecx, edi
call fcn.10057bc0
push eax
lea edx, [ebp - 0x190]
push edx
mov eax, edx
push eax
jmp 0x1004b9df
cmp byte [edi + 0xd8], 0
jne 0x1004b8a0
cmp byte [edi + 0xd9], 0
jne 0x1004b8a0
cmp dword [ebp - 0x610], 0
jne 0x1004b8a0
mov al, 1
jmp 0x1004b8a2
xor al, al
mov edx, dword [ebp - 0x608]
push 1
push eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x110]
push ecx
mov ecx, dword [ebp - 0x660]
push edx
mov edx, dword [ebp - 0x60c]
add eax, eax
sub ecx, eax
push ecx
push edx
lea eax, [ebp - 0x40]
push eax
push esi
lea ecx, [ebp - 0x3a0]
push ecx
mov ecx, edi
call fcn.10057bc0
push eax
lea edx, [ebp - 0x190]
push edx
mov eax, edx
push eax
call ebx
cmp byte [edi + 0xd8], 0
jne 0x1004b907
cmp byte [edi + 0xd9], 0
jne 0x1004b907
cmp dword [ebp - 0x610], 0
jne 0x1004b907
mov al, 1
jmp 0x1004b909
xor al, al
mov edx, dword [ebp - 0x608]
push 1
push eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x110]
push ecx
mov ecx, dword [ebp - 0x660]
push edx
lea edx, [ecx + eax*2]
mov eax, dword [ebp - 0x60c]
push edx
push eax
lea ecx, [ebp - 0x40]
push ecx
push esi
lea edx, [ebp - 0x560]
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x190]
push eax
mov ecx, eax
push ecx
jmp 0x1004b9df
cmp byte [edi + 0xd8], 0
jne 0x1004b970
cmp byte [edi + 0xd9], 0
jne 0x1004b970
cmp dword [ebp - 0x610], 0
jne 0x1004b970
mov al, 1
jmp 0x1004b972
xor al, al
mov ecx, dword [ebp - 0x660]
push 1
push eax
mov eax, dword [ebp - 0x608]
lea edx, [ebp - 0x110]
push edx
push eax
push ecx
lea ecx, [ebp - 0x3c0]
jmp 0x1004b85d
cmp eax, 1
jne 0x1004b9e1
mov ecx, dword [edi + 0x150]
test ecx, ecx
je 0x1004b9e1
push 0
push eax
mov eax, dword [ebp - 0x608]
lea edx, [ebp - 0x110]
push edx
mov edx, dword [ebp - 0x660]
push eax
mov eax, dword [ebp - 0x60c]
push edx
push eax
lea edx, [ebp - 0x40]
push edx
push esi
lea eax, [ebp - 0x4e0]
push eax
call fcn.10057bc0
push eax
lea ecx, [ebp - 0x190]
push ecx
mov edx, ecx
push edx
call ebx
mov eax, dword [edi + 0x160]
add dword [ebp - 0x660], eax
cmp dword [ebp - 0x620], 0
jne 0x1004b656
lea ecx, [ebp - 0x190]
push ecx
lea edx, [ebp - 0x150]
push edx
mov eax, edx
push eax
call ebx
mov ecx, dword [ebp - 0x61c]
mov edx, dword [ecx + 0x6c]
mov eax, dword [ebp - 0x62c]
mov ecx, dword [ebp - 0x624]
xor edi, edi
mov dword [ebp - 0x670], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x618], edx
mov dword [ebp - 0x1b0], edi
mov dword [ebp - 0x1ac], edi
mov dword [ebp - 0x1a8], edi
mov dword [ebp - 0x1a4], edi
mov dword [ebp - 0x620], eax
cmp eax, edi
je 0x1004be04
jmp 0x1004ba68
mov eax, dword [ebp - 0x620]
xor edi, edi
xor edx, edx
cmp eax, edi
setne dl
cmp edx, edi
je 0x1004a7ec
mov eax, dword [ebp - 0x620]
mov edi, dword [eax + 8]
cmp byte [edi + 0x8d], 0
mov ecx, dword [eax]
mov dword [ebp - 0x620], ecx
jne 0x1004be04
fld qword [edi + 0xb0]
fadd qword [edi + 0xa8]
fldz
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x1004bdeb
cmp dword [edi + 0x154], 2
jne 0x1004baca
mov edx, dword [ebp - 0x618]
cmp edx, dword [edi + 0x158]
jl 0x1004bdeb
mov eax, dword [ebp - 0x624]
mov eax, dword [eax + 0x20]
sub eax, dword [edi + 0x164]
mov edx, dword [ebp - 0x610]
add eax, dword [ebp - 0x628]
mov dword [ebp - 0x608], eax
movzx eax, byte [edi + 0xda]
mov dword [ebp - 0x614], eax
test edx, edx
jle 0x1004bb1f
mov ecx, 0xff
sub ecx, eax
imul ecx, edx
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add dword [ebp - 0x614], ecx
mov eax, dword [edi + 0xd0]
mov edx, eax
movzx ecx, al
sar edx, 0x10
and edx, 0xff
shl ecx, 0x10
add edx, ecx
mov ecx, dword [ebp - 0x634]
and eax, 0xff00
add edx, eax
or eax, 0xffffffff
sub eax, dword [ebp - 0x614]
push ecx
mov ecx, dword [ebp - 0x670]
shl eax, 0x18
or edx, eax
xor eax, eax
mov dword [ebp - 0x140], edx
mov edx, dword [ebp - 0x638]
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x608]
push edx
push eax
push ecx
mov ecx, edi
mov dword [ebp - 0x13c], 0xffffffff
call fcn.10044dd0
mov eax, dword [edi + 0xa4]
test eax, eax
jne 0x1004bd9f
mov eax, dword [esi + 0x34]
sub eax, 0
je 0x1004bd5b
dec eax
je 0x1004bc8b
dec eax
jne 0x1004bdeb
cmp byte [edi + 0xd8], al
jne 0x1004bbde
cmp byte [edi + 0xd9], al
jne 0x1004bbde
cmp dword [ebp - 0x610], eax
jne 0x1004bbde
mov al, 1
jmp 0x1004bbe0
xor al, al
mov ecx, dword [ebp - 0x608]
push 1
push eax
mov eax, dword [esi + 8]
add eax, eax
add eax, eax
sub ecx, eax
mov eax, dword [ebp - 0x60c]
lea edx, [ebp - 0x140]
push edx
mov edx, dword [ebp - 0x670]
push ecx
push edx
push eax
lea ecx, [ebp - 0x30]
push ecx
push esi
lea edx, [ebp - 0x3e0]
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x1b0]
push eax
mov ecx, eax
push ecx
call ebx
cmp byte [edi + 0xd8], 0
jne 0x1004bc47
cmp byte [edi + 0xd9], 0
jne 0x1004bc47
cmp dword [ebp - 0x610], 0
jne 0x1004bc47
mov al, 1
jmp 0x1004bc49
xor al, al
mov ecx, dword [ebp - 0x670]
push 1
push eax
mov eax, dword [ebp - 0x608]
lea edx, [ebp - 0x140]
push edx
push eax
push ecx
lea ecx, [ebp - 0x240]
mov edx, dword [ebp - 0x60c]
push edx
lea eax, [ebp - 0x30]
push eax
push esi
push ecx
mov ecx, edi
call fcn.10057bc0
push eax
lea edx, [ebp - 0x1b0]
push edx
mov eax, edx
push eax
jmp 0x1004bde9
cmp byte [edi + 0xd8], 0
jne 0x1004bcaa
cmp byte [edi + 0xd9], 0
jne 0x1004bcaa
cmp dword [ebp - 0x610], 0
jne 0x1004bcaa
mov al, 1
jmp 0x1004bcac
xor al, al
mov edx, dword [ebp - 0x608]
push 1
push eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x140]
push ecx
mov ecx, dword [ebp - 0x670]
push edx
mov edx, dword [ebp - 0x60c]
add eax, eax
sub ecx, eax
push ecx
push edx
lea eax, [ebp - 0x30]
push eax
push esi
lea ecx, [ebp - 0x250]
push ecx
mov ecx, edi
call fcn.10057bc0
push eax
lea edx, [ebp - 0x1b0]
push edx
mov eax, edx
push eax
call ebx
cmp byte [edi + 0xd8], 0
jne 0x1004bd11
cmp byte [edi + 0xd9], 0
jne 0x1004bd11
cmp dword [ebp - 0x610], 0
jne 0x1004bd11
mov al, 1
jmp 0x1004bd13
xor al, al
mov edx, dword [ebp - 0x608]
push 1
push eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x140]
push ecx
mov ecx, dword [ebp - 0x670]
push edx
lea edx, [ecx + eax*2]
mov eax, dword [ebp - 0x60c]
push edx
push eax
lea ecx, [ebp - 0x30]
push ecx
push esi
lea edx, [ebp - 0x5e0]
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x1b0]
push eax
mov ecx, eax
push ecx
jmp 0x1004bde9
cmp byte [edi + 0xd8], 0
jne 0x1004bd7a
cmp byte [edi + 0xd9], 0
jne 0x1004bd7a
cmp dword [ebp - 0x610], 0
jne 0x1004bd7a
mov al, 1
jmp 0x1004bd7c
xor al, al
mov ecx, dword [ebp - 0x670]
push 1
push eax
mov eax, dword [ebp - 0x608]
lea edx, [ebp - 0x140]
push edx
push eax
push ecx
lea ecx, [ebp - 0x400]
jmp 0x1004bc67
cmp eax, 1
jne 0x1004bdeb
mov ecx, dword [edi + 0x150]
test ecx, ecx
je 0x1004bdeb
push 0
push eax
mov eax, dword [ebp - 0x608]
lea edx, [ebp - 0x140]
push edx
mov edx, dword [ebp - 0x670]
push eax
mov eax, dword [ebp - 0x60c]
push edx
push eax
lea edx, [ebp - 0x30]
push edx
push esi
lea eax, [ebp - 0x500]
push eax
call fcn.10057bc0
push eax
lea ecx, [ebp - 0x1b0]
push ecx
mov edx, ecx
push edx
call ebx
mov eax, dword [edi + 0x160]
add dword [ebp - 0x670], eax
cmp dword [ebp - 0x620], 0
jne 0x1004ba60
lea ecx, [ebp - 0x1b0]
push ecx
lea edx, [ebp - 0x150]
push edx
mov eax, edx
push eax
call ebx
mov ecx, dword [ebp - 0x61c]
mov edx, dword [ecx + 0x6c]
mov eax, dword [ebp - 0x62c]
mov ecx, dword [ebp - 0x624]
xor edi, edi
mov dword [ebp - 0x67c], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x618], edx
mov dword [ebp - 0x1a0], edi
mov dword [ebp - 0x19c], edi
mov dword [ebp - 0x198], edi
mov dword [ebp - 0x194], edi
mov dword [ebp - 0x620], eax
cmp eax, edi
je 0x1004c209
jmp 0x1004be6d
mov eax, dword [ebp - 0x620]
xor edi, edi
xor edx, edx
cmp eax, edi
setne dl
cmp edx, edi
je 0x1004a7ec
mov eax, dword [ebp - 0x620]
mov edi, dword [eax + 8]
cmp byte [edi + 0x8d], 0
mov ecx, dword [eax]
mov dword [ebp - 0x620], ecx
jne 0x1004c209
fld qword [edi + 0xb0]
fadd qword [edi + 0xa8]
fldz
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x1004c1f0
cmp dword [edi + 0x154], 2
jne 0x1004becf
mov edx, dword [ebp - 0x618]
cmp edx, dword [edi + 0x158]
jl 0x1004c1f0
mov eax, dword [ebp - 0x624]
mov eax, dword [eax + 0x20]
sub eax, dword [edi + 0x164]
mov edx, dword [ebp - 0x610]
add eax, dword [ebp - 0x628]
mov dword [ebp - 0x608], eax
movzx eax, byte [edi + 0xda]
mov dword [ebp - 0x614], eax
test edx, edx
jle 0x1004bf24
mov ecx, 0xff
sub ecx, eax
imul ecx, edx
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add dword [ebp - 0x614], ecx
mov eax, dword [edi + 0xd0]
mov edx, eax
movzx ecx, al
sar edx, 0x10
and edx, 0xff
shl ecx, 0x10
add edx, ecx
mov ecx, dword [ebp - 0x634]
and eax, 0xff00
add edx, eax
or eax, 0xffffffff
sub eax, dword [ebp - 0x614]
push ecx
mov ecx, dword [ebp - 0x67c]
shl eax, 0x18
or edx, eax
xor eax, eax
mov dword [ebp - 0xe0], edx
mov edx, dword [ebp - 0x638]
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x608]
push edx
push eax
push ecx
mov ecx, edi
mov dword [ebp - 0xdc], 0xffffffff
call fcn.10044dd0
mov eax, dword [edi + 0xa4]
test eax, eax
jne 0x1004c1a4
mov eax, dword [esi + 0x34]
sub eax, 0
je 0x1004c160
dec eax
je 0x1004c090
dec eax
jne 0x1004c1f0
cmp byte [edi + 0xd8], al
jne 0x1004bfe3
cmp byte [edi + 0xd9], al
jne 0x1004bfe3
cmp dword [ebp - 0x610], eax
jne 0x1004bfe3
mov al, 1
jmp 0x1004bfe5
xor al, al
mov ecx, dword [ebp - 0x608]
push 1
push eax
mov eax, dword [esi + 8]
add eax, eax
add eax, eax
sub ecx, eax
mov eax, dword [ebp - 0x60c]
lea edx, [ebp - 0xe0]
push edx
mov edx, dword [ebp - 0x67c]
push ecx
push edx
push eax
lea ecx, [ebp - 0x20]
push ecx
push esi
lea edx, [ebp - 0x420]
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x1a0]
push eax
mov ecx, eax
push ecx
call ebx
cmp byte [edi + 0xd8], 0
jne 0x1004c04c
cmp byte [edi + 0xd9], 0
jne 0x1004c04c
cmp dword [ebp - 0x610], 0
jne 0x1004c04c
mov al, 1
jmp 0x1004c04e
xor al, al
mov ecx, dword [ebp - 0x67c]
push 1
push eax
mov eax, dword [ebp - 0x608]
lea edx, [ebp - 0xe0]
push edx
push eax
push ecx
lea ecx, [ebp - 0x580]
mov edx, dword [ebp - 0x60c]
push edx
lea eax, [ebp - 0x20]
push eax
push esi
push ecx
mov ecx, edi
call fcn.10057bc0
push eax
lea edx, [ebp - 0x1a0]
push edx
mov eax, edx
push eax
jmp 0x1004c1ee
cmp byte [edi + 0xd8], 0
jne 0x1004c0af
cmp byte [edi + 0xd9], 0
jne 0x1004c0af
cmp dword [ebp - 0x610], 0
jne 0x1004c0af
mov al, 1
jmp 0x1004c0b1
xor al, al
mov edx, dword [ebp - 0x608]
push 1
push eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0xe0]
push ecx
mov ecx, dword [ebp - 0x67c]
push edx
mov edx, dword [ebp - 0x60c]
add eax, eax
sub ecx, eax
push ecx
push edx
lea eax, [ebp - 0x20]
push eax
push esi
lea ecx, [ebp - 0x440]
push ecx
mov ecx, edi
call fcn.10057bc0
push eax
lea edx, [ebp - 0x1a0]
push edx
mov eax, edx
push eax
call ebx
cmp byte [edi + 0xd8], 0
jne 0x1004c116
cmp byte [edi + 0xd9], 0
jne 0x1004c116
cmp dword [ebp - 0x610], 0
jne 0x1004c116
mov al, 1
jmp 0x1004c118
xor al, al
mov edx, dword [ebp - 0x608]
push 1
push eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0xe0]
push ecx
mov ecx, dword [ebp - 0x67c]
push edx
lea edx, [ecx + eax*2]
mov eax, dword [ebp - 0x60c]
push edx
push eax
lea ecx, [ebp - 0x20]
push ecx
push esi
lea edx, [ebp - 0x260]
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x1a0]
push eax
mov ecx, eax
push ecx
jmp 0x1004c1ee
cmp byte [edi + 0xd8], 0
jne 0x1004c17f
cmp byte [edi + 0xd9], 0
jne 0x1004c17f
cmp dword [ebp - 0x610], 0
jne 0x1004c17f
mov al, 1
jmp 0x1004c181
xor al, al
mov ecx, dword [ebp - 0x67c]
push 1
push eax
mov eax, dword [ebp - 0x608]
lea edx, [ebp - 0xe0]
push edx
push eax
push ecx
lea ecx, [ebp - 0x270]
jmp 0x1004c06c
cmp eax, 1
jne 0x1004c1f0
mov ecx, dword [edi + 0x150]
test ecx, ecx
je 0x1004c1f0
push 0
push eax
mov eax, dword [ebp - 0x608]
lea edx, [ebp - 0xe0]
push edx
mov edx, dword [ebp - 0x67c]
push eax
mov eax, dword [ebp - 0x60c]
push edx
push eax
lea edx, [ebp - 0x20]
push edx
push esi
lea eax, [ebp - 0x520]
push eax
call fcn.10057bc0
push eax
lea ecx, [ebp - 0x1a0]
push ecx
mov edx, ecx
push edx
call ebx
mov eax, dword [edi + 0x160]
add dword [ebp - 0x67c], eax
cmp dword [ebp - 0x620], 0
jne 0x1004be65
lea ecx, [ebp - 0x1a0]
jmp 0x1004c609
mov dword [ebp - 0x668], eax
mov eax, dword [ebp - 0x624]
mov eax, dword [eax + 4]
mov dword [ebp - 0x180], ecx
mov dword [ebp - 0x17c], ecx
mov dword [ebp - 0x178], ecx
mov dword [ebp - 0x174], ecx
mov dword [ebp - 0x620], eax
cmp eax, ecx
je 0x1004c603
jmp 0x1004c256
mov eax, dword [ebp - 0x620]
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
test eax, eax
je 0x1004a7ec
mov eax, dword [ebp - 0x620]
mov edi, dword [eax + 8]
cmp byte [edi + 0x8d], 0
mov edx, dword [eax]
mov dword [ebp - 0x620], edx
jne 0x1004c603
fld qword [edi + 0xb0]
fadd qword [edi + 0xa8]
fldz
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x1004c5ea
cmp dword [edi + 0x154], 2
jne 0x1004c2ba
mov eax, dword [ebp - 0x618]
cmp eax, dword [edi + 0x158]
jl 0x1004c5ea
mov ecx, dword [ebp - 0x624]
mov eax, dword [ecx + 0x20]
sub eax, dword [edi + 0x164]
mov edx, dword [ebp - 0x610]
add eax, dword [ebp - 0x628]
mov dword [ebp - 0x608], eax
movzx eax, byte [edi + 0xda]
mov dword [ebp - 0x614], eax
test edx, edx
jle 0x1004c30f
mov ecx, 0xff
sub ecx, eax
imul ecx, edx
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add dword [ebp - 0x614], eax
mov eax, dword [edi + 0xd0]
mov ecx, eax
movzx edx, al
sar ecx, 0x10
and ecx, 0xff
and eax, 0xff00
shl edx, 0x10
add ecx, edx
mov edx, dword [ebp - 0x638]
add ecx, eax
or eax, 0xffffffff
sub eax, dword [ebp - 0x614]
mov dword [ebp - 0x124], 0xffffffff
shl eax, 0x18
or ecx, eax
mov dword [ebp - 0x128], ecx
mov ecx, dword [ebp - 0x634]
xor eax, eax
push ecx
mov ecx, dword [ebp - 0x668]
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x608]
push edx
push eax
push ecx
mov ecx, edi
call fcn.10044dd0
mov eax, dword [edi + 0xa4]
test eax, eax
jne 0x1004c59b
mov eax, dword [esi + 0x34]
sub eax, 0
je 0x1004c557
dec eax
je 0x1004c481
dec eax
jne 0x1004c5ea
cmp byte [edi + 0xd8], al
jne 0x1004c3ce
cmp byte [edi + 0xd9], al
jne 0x1004c3ce
cmp dword [ebp - 0x610], eax
jne 0x1004c3ce
mov al, 1
jmp 0x1004c3d0
xor al, al
mov ecx, dword [ebp - 0x608]
push 1
push eax
mov eax, dword [esi + 8]
add eax, eax
add eax, eax
sub ecx, eax
mov eax, dword [ebp - 0x60c]
lea edx, [ebp - 0x128]
push edx
mov edx, dword [ebp - 0x668]
push ecx
push edx
push eax
lea ecx, [ebp - 0x600]
push ecx
push esi
lea edx, [ebp - 0x280]
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x180]
push eax
mov ecx, eax
push ecx
call ebx
cmp byte [edi + 0xd8], 0
jne 0x1004c43a
cmp byte [edi + 0xd9], 0
jne 0x1004c43a
cmp dword [ebp - 0x610], 0
jne 0x1004c43a
mov al, 1
jmp 0x1004c43c
xor al, al
mov ecx, dword [ebp - 0x668]
push 1
push eax
mov eax, dword [ebp - 0x608]
lea edx, [ebp - 0x128]
push edx
push eax
push ecx
lea ecx, [ebp - 0x2a0]
mov edx, dword [ebp - 0x60c]
push edx
lea eax, [ebp - 0x600]
push eax
push esi
push ecx
mov ecx, edi
call fcn.10057bc0
push eax
lea edx, [ebp - 0x180]
push edx
mov eax, edx
push eax
jmp 0x1004c5e8
cmp byte [edi + 0xd8], 0
jne 0x1004c4a0
cmp byte [edi + 0xd9], 0
jne 0x1004c4a0
cmp dword [ebp - 0x610], 0
jne 0x1004c4a0
mov al, 1
jmp 0x1004c4a2
xor al, al
mov edx, dword [ebp - 0x608]
push 1
push eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x128]
push ecx
mov ecx, dword [ebp - 0x668]
push edx
mov edx, dword [ebp - 0x60c]
add eax, eax
sub ecx, eax
push ecx
push edx
lea eax, [ebp - 0x600]
push eax
push esi
lea ecx, [ebp - 0x2f0]
push ecx
mov ecx, edi
call fcn.10057bc0
push eax
lea edx, [ebp - 0x180]
push edx
mov eax, edx
push eax
call ebx
cmp byte [edi + 0xd8], 0
jne 0x1004c50a
cmp byte [edi + 0xd9], 0
jne 0x1004c50a
cmp dword [ebp - 0x610], 0
jne 0x1004c50a
mov al, 1
jmp 0x1004c50c
xor al, al
mov edx, dword [ebp - 0x608]
push 1
push eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x128]
push ecx
mov ecx, dword [ebp - 0x668]
push edx
lea edx, [ecx + eax*2]
mov eax, dword [ebp - 0x60c]
push edx
push eax
lea ecx, [ebp - 0x600]
push ecx
push esi
lea edx, [ebp - 0x310]
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x180]
push eax
mov ecx, eax
push ecx
jmp 0x1004c5e8
cmp byte [edi + 0xd8], 0
jne 0x1004c576
cmp byte [edi + 0xd9], 0
jne 0x1004c576
cmp dword [ebp - 0x610], 0
jne 0x1004c576
mov al, 1
jmp 0x1004c578
xor al, al
mov ecx, dword [ebp - 0x668]
push 1
push eax
mov eax, dword [ebp - 0x608]
lea edx, [ebp - 0x128]
push edx
push eax
push ecx
lea ecx, [ebp - 0x330]
jmp 0x1004c45a
cmp eax, 1
jne 0x1004c5ea
mov ecx, dword [edi + 0x150]
test ecx, ecx
je 0x1004c5ea
push 0
push eax
mov eax, dword [ebp - 0x608]
lea edx, [ebp - 0x128]
push edx
mov edx, dword [ebp - 0x668]
push eax
mov eax, dword [ebp - 0x60c]
push edx
push eax
lea edx, [ebp - 0x600]
push edx
push esi
lea eax, [ebp - 0x350]
push eax
call fcn.10057bc0
push eax
lea ecx, [ebp - 0x180]
push ecx
mov edx, ecx
push edx
call ebx
mov eax, dword [edi + 0x160]
add dword [ebp - 0x668], eax
cmp dword [ebp - 0x620], 0
jne 0x1004c250
lea ecx, [ebp - 0x180]
push ecx
lea edx, [ebp - 0x150]
push edx
mov eax, edx
push eax
call ebx
mov eax, dword [ebp - 0x624]
mov ecx, dword [eax + 0x24]
add ecx, dword [eax + 0x20]
mov eax, dword [ebp - 0x644]
add dword [ebp - 0x628], ecx
mov edi, dword [ebp - 0x674]
test eax, eax
jne 0x1004b191
mov edi, dword [edi + 8]
mov edx, dword [ebp - 0x6f0]
xor eax, eax
mov dword [ebp - 0x62c], eax
mov dword [ebp - 0x628], edx
mov dword [ebp - 0x644], edi
test edi, edi
je 0x1004df5f
mov eax, dword [ebp - 0x644]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x1004a7ec
mov ecx, dword [eax]
mov edx, dword [ebp - 0x674]
mov dword [ebp - 0x644], ecx
mov ecx, dword [eax + 8]
mov eax, dword [edx + 0x20]
cdq
mov edi, 3
idiv edi
xor edi, edi
mov dword [ebp - 0x624], ecx
cmp edx, 1
jne 0x1004c6a7
mov eax, dword [ebp - 0x650]
jmp 0x1004c6c8
cmp edx, edi
jne 0x1004c6b6
mov eax, dword [ebp - 0x650]
sub eax, dword [ecx + 0x1c]
jmp 0x1004c6c8
mov eax, dword [ecx + 0x1c]
cdq
sub eax, edx
mov edx, eax
mov eax, dword [ebp - 0x650]
sar edx, 1
sub eax, edx
mov edx, dword [ebp - 0x674]
cmp byte [edx + 0x88], 0
mov edx, dword [ebp - 0x61c]
mov edx, dword [edx + 0x6c]
mov dword [ebp - 0x62c], eax
je 0x1004da49
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x640], edx
mov dword [ebp - 0x68c], eax
mov dword [ebp - 0x200], edi
mov dword [ebp - 0x1fc], edi
mov dword [ebp - 0x1f8], edi
mov dword [ebp - 0x1f4], edi
mov dword [ebp - 0x604], ecx
cmp ecx, edi
je 0x1004cb77
mov eax, dword [ebp - 0x604]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x1004a7ec
mov edi, dword [eax + 8]
cmp byte [edi + 0x8d], 0
mov ecx, dword [eax]
mov dword [ebp - 0x604], ecx
jne 0x1004cb77
mov edx, dword [ebp - 0x624]
mov eax, dword [edx + 0x20]
sub eax, dword [edi + 0x164]
movzx ecx, byte [edi + 0xd9]
add eax, dword [ebp - 0x628]
cmp dword [ebp - 0x610], 0
mov dword [ebp - 0x608], eax
movzx eax, byte [edi + 0xd8]
mov dword [ebp - 0x620], eax
mov dword [ebp - 0x614], ecx
jle 0x1004c7df
mov ecx, 0xff
sub ecx, eax
imul ecx, dword [ebp - 0x610]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx edx, byte [edi + 0xda]
add dword [ebp - 0x620], eax
mov ecx, 0xff
sub ecx, edx
imul ecx, dword [ebp - 0x610]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add dword [ebp - 0x614], eax
mov edx, dword [edi + 0xc8]
mov eax, edx
movzx ecx, dl
and edx, 0xff00
sar eax, 0x10
shl ecx, 0x10
and eax, 0xff
add eax, ecx
add eax, edx
or edx, 0xffffffff
sub edx, dword [ebp - 0x620]
shl edx, 0x18
or eax, edx
mov edx, dword [edi + 0xcc]
mov ecx, edx
mov dword [ebp - 0x618], edx
movzx edx, dl
sar ecx, 0x10
shl edx, 0x10
and ecx, 0xff
add ecx, edx
mov edx, dword [ebp - 0x618]
and edx, 0xff00
add ecx, edx
or edx, 0xffffffff
sub edx, dword [ebp - 0x614]
mov dword [ebp - 0x68], eax
xor eax, eax
shl edx, 0x18
or ecx, edx
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov eax, dword [edi + 0x154]
test eax, eax
je 0x1004c92a
cmp eax, 2
je 0x1004c92a
cmp eax, 1
jne 0x1004c951
mov ecx, dword [ebp - 0x640]
cmp ecx, dword [edi + 0x158]
jge 0x1004c89b
fldz
fstp qword [ebp - 0x6e0]
jmp 0x1004c966
mov eax, dword [edi + 0x15c]
cmp ecx, eax
jge 0x1004c920
mov ecx, dword [edi + 0x158]
mov edx, dword [ebp - 0x640]
sub edx, ecx
mov dword [ebp - 0x618], edx
fild dword [ebp - 0x618]
sub eax, ecx
mov dword [ebp - 0x618], eax
fild dword [ebp - 0x618]
fdivp st(1)
fstp qword [ebp - 0x6e0]
fld qword [edi + 0x120]
fld qword [0x100eae30]
call fcn.100a8aaa
fld qword [0x100f0a20]
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x1004c94f
fld qword [0x100f0a18]
fcompi st(1)
fstp st(0)
jbe 0x1004c951
fld1
mov eax, dword [ebp - 0x68]
fsub qword [ebp - 0x6e0]
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x60], eax
fstp qword [ebp - 0x6e0]
jmp 0x1004c951
fld1
fstp qword [ebp - 0x6e0]
jmp 0x1004c95f
mov eax, dword [ebp - 0x640]
xor edx, edx
cmp eax, dword [edi + 0x158]
setge dl
mov dword [ebp - 0x618], edx
fild dword [ebp - 0x618]
fstp qword [ebp - 0x6e0]
jmp 0x1004c951
fstp st(0)
fld1
fld qword [ebp - 0x6e0]
fcompi st(1)
fstp st(0)
jb 0x1004c966
mov dword [ebp - 0x64], 0xfffffff
fldz
xor ecx, ecx
fld qword [edi + 0x118]
mov dword [ebp - 0x614], ecx
fcompi st(1)
fstp st(0)
jbe 0x1004c9a4
fld qword [edi + 0x118]
fmul qword [0x100e7c38]
fmul qword [0x100e7dd8]
fadd qword [0x100edf10]
call fcn.100a7850
mov ecx, eax
or ecx, 1
mov dword [ebp - 0x614], ecx
cmp dword [edi + 0x110], 0
je 0x1004c9b6
add ecx, 8
mov dword [ebp - 0x614], ecx
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x634]
mov eax, dword [ebp - 0x638]
push edx
mov edx, dword [ebp - 0x68c]
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x608]
push eax
push ecx
push edx
mov ecx, edi
mov dword [ebp - 0x54], 0xffffff
call fcn.10044dd0
mov ecx, edi
call fcn.100552c0
mov dword [ebp - 0x618], eax
fild dword [ebp - 0x618]
fld qword [ebp - 0x6e0]
fmul st(1), st(0)
fxch st(1)
fadd qword [edi + 0xa8]
fild dword [ebp - 0x614]
fmulp st(2)
faddp st(1)
call fcn.100a7850
sar eax, 3
mov dword [ebp - 0x5c], eax
mov eax, dword [esi + 0x34]
sub eax, 0
je 0x1004cb21
dec eax
je 0x1004ca9a
dec eax
jne 0x1004cb5e
mov ecx, dword [esi + 8]
mov edx, dword [ebp - 0x608]
push eax
push 1
add ecx, ecx
add ecx, ecx
sub edx, ecx
mov ecx, dword [ebp - 0x60c]
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x68c]
push edx
push eax
push ecx
lea edx, [ebp - 0x50]
push edx
push esi
lea eax, [ebp - 0x370]
push eax
mov ecx, edi
call fcn.10057bc0
push eax
lea ecx, [ebp - 0x200]
push ecx
mov edx, ecx
push edx
call ebx
mov ecx, dword [ebp - 0x608]
mov edx, dword [ebp - 0x68c]
push 0
push 1
lea eax, [ebp - 0x68]
push eax
push ecx
push edx
lea edx, [ebp - 0x390]
jmp 0x1004cb3d
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 0x608]
push 0
push 1
lea edx, [ebp - 0x68]
push edx
mov edx, dword [ebp - 0x68c]
push eax
mov eax, dword [ebp - 0x60c]
add ecx, ecx
sub edx, ecx
push edx
push eax
lea ecx, [ebp - 0x50]
push ecx
push esi
lea edx, [ebp - 0x3b0]
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x200]
push eax
mov ecx, eax
push ecx
call ebx
mov eax, dword [ebp - 0x608]
mov ecx, dword [esi + 4]
push 0
push 1
lea edx, [ebp - 0x68]
push edx
mov edx, dword [ebp - 0x68c]
push eax
lea eax, [edx + ecx*2]
mov ecx, dword [ebp - 0x60c]
push eax
push ecx
lea edx, [ebp - 0x50]
push edx
push esi
lea eax, [ebp - 0x3d0]
push eax
mov ecx, edi
call fcn.10057bc0
push eax
lea ecx, [ebp - 0x200]
push ecx
mov edx, ecx
push edx
jmp 0x1004cb5c
mov ecx, dword [ebp - 0x608]
mov edx, dword [ebp - 0x68c]
push 0
push 1
lea eax, [ebp - 0x68]
push eax
push ecx
push edx
lea edx, [ebp - 0x3f0]
mov eax, dword [ebp - 0x60c]
push eax
lea ecx, [ebp - 0x50]
push ecx
push esi
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x200]
push eax
mov ecx, eax
push ecx
call ebx
mov edx, dword [edi + 0x160]
add dword [ebp - 0x68c], edx
cmp dword [ebp - 0x604], 0
jne 0x1004c71f
lea eax, [ebp - 0x200]
push eax
lea ecx, [ebp - 0x150]
push ecx
mov edx, ecx
push edx
call ebx
mov eax, dword [ebp - 0x61c]
mov ecx, dword [eax + 0x6c]
mov eax, dword [ebp - 0x624]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x62c]
mov dword [ebp - 0x618], ecx
xor ecx, ecx
mov dword [ebp - 0x684], edx
mov dword [ebp - 0x1d0], ecx
mov dword [ebp - 0x1cc], ecx
mov dword [ebp - 0x1c8], ecx
mov dword [ebp - 0x1c4], ecx
cmp eax, ecx
je 0x1004d076
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x1004a7ec
mov edi, dword [eax + 8]
cmp byte [edi + 0x8d], 0
mov ecx, dword [eax]
mov dword [ebp - 0x614], ecx
jne 0x1004d076
mov edx, dword [ebp - 0x624]
mov eax, dword [edx + 0x20]
sub eax, dword [edi + 0x164]
movzx ebx, byte [edi + 0xd8]
add eax, dword [ebp - 0x628]
cmp dword [ebp - 0x610], 0
mov dword [ebp - 0x608], eax
movzx eax, byte [edi + 0xd9]
mov dword [ebp - 0x604], eax
jle 0x1004cc80
mov ecx, 0xff
sub ecx, ebx
imul ecx, dword [ebp - 0x610]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
movzx edx, byte [edi + 0xda]
add ebx, ecx
mov ecx, 0xff
sub ecx, edx
imul ecx, dword [ebp - 0x610]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add dword [ebp - 0x604], eax
mov ecx, dword [edi + 0xc8]
mov eax, ecx
movzx edx, cl
sar eax, 0x10
shl edx, 0x10
and eax, 0xff
add eax, edx
mov edx, dword [edi + 0xcc]
and ecx, 0xff00
add eax, ecx
or ecx, 0xffffffff
sub ecx, ebx
shl ecx, 0x18
or eax, ecx
mov ecx, edx
movzx ebx, dl
sar ecx, 0x10
shl ebx, 0x10
and edx, 0xff00
and ecx, 0xff
add ebx, ecx
add ebx, edx
or edx, 0xffffffff
sub edx, dword [ebp - 0x604]
mov dword [ebp - 0x98], eax
xor eax, eax
shl edx, 0x18
or ebx, edx
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov eax, dword [edi + 0x154]
test eax, eax
je 0x1004cdcf
cmp eax, 2
je 0x1004cdcf
cmp eax, 1
jne 0x1004cdf6
mov edx, dword [ebp - 0x618]
cmp edx, dword [edi + 0x158]
jge 0x1004cd3e
fldz
fstp qword [ebp - 0x6bc]
jmp 0x1004ce0e
mov eax, dword [edi + 0x15c]
cmp edx, eax
jge 0x1004cdc5
mov ecx, dword [edi + 0x158]
sub edx, ecx
mov dword [ebp - 0x604], edx
fild dword [ebp - 0x604]
sub eax, ecx
mov dword [ebp - 0x604], eax
fild dword [ebp - 0x604]
fdivp st(1)
fstp qword [ebp - 0x6bc]
fld qword [edi + 0x120]
fld qword [0x100eae30]
call fcn.100a8aaa
fld qword [0x100f0a20]
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x1004cdf4
fld qword [0x100f0a18]
fcompi st(1)
fstp st(0)
jbe 0x1004cdf6
fld1
mov eax, dword [ebp - 0x98]
fsub qword [ebp - 0x6bc]
mov dword [ebp - 0x98], ebx
mov ebx, eax
mov dword [ebp - 0x90], ebx
fstp qword [ebp - 0x6bc]
jmp 0x1004cdf6
fld1
fstp qword [ebp - 0x6bc]
jmp 0x1004ce04
mov ecx, dword [ebp - 0x618]
xor eax, eax
cmp ecx, dword [edi + 0x158]
setge al
mov dword [ebp - 0x604], eax
fild dword [ebp - 0x604]
fstp qword [ebp - 0x6bc]
jmp 0x1004cdf6
fstp st(0)
fld1
fld qword [ebp - 0x6bc]
fcompi st(1)
fstp st(0)
jb 0x1004ce0e
mov dword [ebp - 0x94], 0xfffffff
fldz
xor ecx, ecx
fld qword [edi + 0x118]
mov dword [ebp - 0x604], ecx
fcompi st(1)
fstp st(0)
jbe 0x1004ce4c
fld qword [edi + 0x118]
fmul qword [0x100e7c38]
fmul qword [0x100e7dd8]
fadd qword [0x100edf10]
call fcn.100a7850
mov ecx, eax
or ecx, 1
mov dword [ebp - 0x604], ecx
cmp dword [edi + 0x110], 0
je 0x1004ce5e
add ecx, 8
mov dword [ebp - 0x604], ecx
mov edx, dword [ebp - 0x634]
mov eax, dword [ebp - 0x638]
mov ecx, dword [ebp - 0x608]
push edx
mov edx, dword [ebp - 0x684]
push eax
push ecx
push edx
mov ecx, edi
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], 0xffffff
call fcn.10044dd0
mov ecx, edi
call fcn.100552c0
mov dword [ebp - 0x640], eax
fild dword [ebp - 0x640]
fld qword [ebp - 0x6bc]
fmul st(1), st(0)
fxch st(1)
fadd qword [edi + 0xa8]
fild dword [ebp - 0x604]
fmulp st(2)
faddp st(1)
call fcn.100a7850
sar eax, 3
mov dword [ebp - 0x8c], eax
mov eax, dword [esi + 0x34]
sub eax, 0
je 0x1004d00e
dec eax
je 0x1004cf79
dec eax
jne 0x1004d056
mov ecx, dword [esi + 8]
mov edx, dword [ebp - 0x608]
push eax
push 1
add ecx, ecx
add ecx, ecx
sub edx, ecx
mov ecx, dword [ebp - 0x60c]
lea eax, [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x684]
push edx
push eax
push ecx
lea edx, [ebp - 0x40]
push edx
push esi
lea eax, [ebp - 0x410]
push eax
mov ecx, edi
call fcn.10057bc0
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
push eax
lea ecx, [ebp - 0x1d0]
push ecx
mov edx, ecx
push edx
call ebx
mov ecx, dword [ebp - 0x608]
mov edx, dword [ebp - 0x684]
push 0
push 1
lea eax, [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x60c]
push ecx
push edx
push eax
lea ecx, [ebp - 0x40]
push ecx
push esi
lea edx, [ebp - 0x430]
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x1d0]
push eax
mov ecx, eax
push ecx
call ebx
jmp 0x1004d05c
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 0x608]
push 0
push 1
lea edx, [ebp - 0x98]
push edx
mov edx, dword [ebp - 0x684]
push eax
mov eax, dword [ebp - 0x60c]
add ecx, ecx
sub edx, ecx
push edx
push eax
lea ecx, [ebp - 0x40]
push ecx
push esi
lea edx, [ebp - 0x450]
push edx
mov ecx, edi
call fcn.10057bc0
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
push eax
lea eax, [ebp - 0x1d0]
push eax
mov ecx, eax
push ecx
call ebx
mov eax, dword [ebp - 0x608]
mov ecx, dword [esi + 4]
push 0
push 1
lea edx, [ebp - 0x98]
push edx
mov edx, dword [ebp - 0x684]
push eax
lea eax, [edx + ecx*2]
mov ecx, dword [ebp - 0x60c]
push eax
push ecx
lea edx, [ebp - 0x40]
push edx
push esi
lea eax, [ebp - 0x470]
push eax
mov ecx, edi
call fcn.10057bc0
push eax
lea ecx, [ebp - 0x1d0]
push ecx
mov edx, ecx
push edx
call ebx
jmp 0x1004d05c
mov ecx, dword [ebp - 0x608]
mov edx, dword [ebp - 0x684]
push 0
push 1
lea eax, [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x60c]
push ecx
push edx
push eax
lea ecx, [ebp - 0x40]
push ecx
push esi
lea edx, [ebp - 0x490]
push edx
mov ecx, edi
call fcn.10057bc0
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
push eax
lea eax, [ebp - 0x1d0]
push eax
mov ecx, eax
push ecx
call ebx
jmp 0x1004d05c
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
mov edx, dword [edi + 0x160]
mov eax, dword [ebp - 0x614]
add dword [ebp - 0x684], edx
test eax, eax
jne 0x1004cbd0
lea eax, [ebp - 0x1d0]
push eax
lea ecx, [ebp - 0x150]
push ecx
mov edx, ecx
push edx
call ebx
mov eax, dword [ebp - 0x61c]
mov ecx, dword [eax + 0x6c]
mov eax, dword [ebp - 0x624]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x62c]
mov dword [ebp - 0x618], ecx
xor ecx, ecx
mov dword [ebp - 0x69c], edx
mov dword [ebp - 0x1e0], ecx
mov dword [ebp - 0x1dc], ecx
mov dword [ebp - 0x1d8], ecx
mov dword [ebp - 0x1d4], ecx
cmp eax, ecx
je 0x1004d575
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x1004a7ec
mov edi, dword [eax + 8]
cmp byte [edi + 0x8d], 0
mov ecx, dword [eax]
mov dword [ebp - 0x614], ecx
jne 0x1004d575
mov edx, dword [ebp - 0x624]
mov eax, dword [edx + 0x20]
sub eax, dword [edi + 0x164]
movzx ebx, byte [edi + 0xd8]
add eax, dword [ebp - 0x628]
cmp dword [ebp - 0x610], 0
mov dword [ebp - 0x608], eax
movzx eax, byte [edi + 0xd9]
mov dword [ebp - 0x604], eax
jle 0x1004d17f
mov ecx, 0xff
sub ecx, ebx
imul ecx, dword [ebp - 0x610]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
movzx edx, byte [edi + 0xda]
add ebx, ecx
mov ecx, 0xff
sub ecx, edx
imul ecx, dword [ebp - 0x610]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add dword [ebp - 0x604], eax
mov ecx, dword [edi + 0xc8]
mov eax, ecx
movzx edx, cl
sar eax, 0x10
shl edx, 0x10
and eax, 0xff
add eax, edx
mov edx, dword [edi + 0xcc]
and ecx, 0xff00
add eax, ecx
or ecx, 0xffffffff
sub ecx, ebx
shl ecx, 0x18
or eax, ecx
mov ecx, edx
movzx ebx, dl
sar ecx, 0x10
shl ebx, 0x10
and edx, 0xff00
and ecx, 0xff
add ebx, ecx
add ebx, edx
or edx, 0xffffffff
sub edx, dword [ebp - 0x604]
mov dword [ebp - 0xc8], eax
xor eax, eax
shl edx, 0x18
or ebx, edx
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
mov eax, dword [edi + 0x154]
test eax, eax
je 0x1004d2ce
cmp eax, 2
je 0x1004d2ce
cmp eax, 1
jne 0x1004d2f5
mov edx, dword [ebp - 0x618]
cmp edx, dword [edi + 0x158]
jge 0x1004d23d
fldz
fstp qword [ebp - 0x6cc]
jmp 0x1004d30d
mov eax, dword [edi + 0x15c]
cmp edx, eax
jge 0x1004d2c4
mov ecx, dword [edi + 0x158]
sub edx, ecx
mov dword [ebp - 0x604], edx
fild dword [ebp - 0x604]
sub eax, ecx
mov dword [ebp - 0x604], eax
fild dword [ebp - 0x604]
fdivp st(1)
fstp qword [ebp - 0x6cc]
fld qword [edi + 0x120]
fld qword [0x100eae30]
call fcn.100a8aaa
fld qword [0x100f0a20]
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x1004d2f3
fld qword [0x100f0a18]
fcompi st(1)
fstp st(0)
jbe 0x1004d2f5
fld1
mov eax, dword [ebp - 0xc8]
fsub qword [ebp - 0x6cc]
mov dword [ebp - 0xc8], ebx
mov ebx, eax
mov dword [ebp - 0xc0], ebx
fstp qword [ebp - 0x6cc]
jmp 0x1004d2f5
fld1
fstp qword [ebp - 0x6cc]
jmp 0x1004d303
mov ecx, dword [ebp - 0x618]
xor eax, eax
cmp ecx, dword [edi + 0x158]
setge al
mov dword [ebp - 0x604], eax
fild dword [ebp - 0x604]
fstp qword [ebp - 0x6cc]
jmp 0x1004d2f5
fstp st(0)
fld1
fld qword [ebp - 0x6cc]
fcompi st(1)
fstp st(0)
jb 0x1004d30d
mov dword [ebp - 0xc4], 0xfffffff
fldz
xor ecx, ecx
fld qword [edi + 0x118]
mov dword [ebp - 0x604], ecx
fcompi st(1)
fstp st(0)
jbe 0x1004d34b
fld qword [edi + 0x118]
fmul qword [0x100e7c38]
fmul qword [0x100e7dd8]
fadd qword [0x100edf10]
call fcn.100a7850
mov ecx, eax
or ecx, 1
mov dword [ebp - 0x604], ecx
cmp dword [edi + 0x110], 0
je 0x1004d35d
add ecx, 8
mov dword [ebp - 0x604], ecx
mov edx, dword [ebp - 0x634]
mov eax, dword [ebp - 0x638]
mov ecx, dword [ebp - 0x608]
push edx
mov edx, dword [ebp - 0x69c]
push eax
push ecx
push edx
mov ecx, edi
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0xb4], 0xffffff
call fcn.10044dd0
mov ecx, edi
call fcn.100552c0
mov dword [ebp - 0x640], eax
fild dword [ebp - 0x640]
fld qword [ebp - 0x6cc]
fmul st(1), st(0)
fxch st(1)
fadd qword [edi + 0xa8]
fild dword [ebp - 0x604]
fmulp st(2)
faddp st(1)
call fcn.100a7850
sar eax, 3
mov dword [ebp - 0xbc], eax
mov eax, dword [esi + 0x34]
sub eax, 0
je 0x1004d50d
dec eax
je 0x1004d478
dec eax
jne 0x1004d555
mov ecx, dword [esi + 8]
mov edx, dword [ebp - 0x608]
push eax
push 1
add ecx, ecx
add ecx, ecx
sub edx, ecx
mov ecx, dword [ebp - 0x60c]
lea eax, [ebp - 0xc8]
push eax
mov eax, dword [ebp - 0x69c]
push edx
push eax
push ecx
lea edx, [ebp - 0x30]
push edx
push esi
lea eax, [ebp - 0x4b0]
push eax
mov ecx, edi
call fcn.10057bc0
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
push eax
lea ecx, [ebp - 0x1e0]
push ecx
mov edx, ecx
push edx
call ebx
mov ecx, dword [ebp - 0x608]
mov edx, dword [ebp - 0x69c]
push 0
push 1
lea eax, [ebp - 0xc8]
push eax
mov eax, dword [ebp - 0x60c]
push ecx
push edx
push eax
lea ecx, [ebp - 0x30]
push ecx
push esi
lea edx, [ebp - 0x4d0]
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x1e0]
push eax
mov ecx, eax
push ecx
call ebx
jmp 0x1004d55b
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 0x608]
push 0
push 1
lea edx, [ebp - 0xc8]
push edx
mov edx, dword [ebp - 0x69c]
push eax
mov eax, dword [ebp - 0x60c]
add ecx, ecx
sub edx, ecx
push edx
push eax
lea ecx, [ebp - 0x30]
push ecx
push esi
lea edx, [ebp - 0x4f0]
push edx
mov ecx, edi
call fcn.10057bc0
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
push eax
lea eax, [ebp - 0x1e0]
push eax
mov ecx, eax
push ecx
call ebx
mov eax, dword [ebp - 0x608]
mov ecx, dword [esi + 4]
push 0
push 1
lea edx, [ebp - 0xc8]
push edx
mov edx, dword [ebp - 0x69c]
push eax
lea eax, [edx + ecx*2]
mov ecx, dword [ebp - 0x60c]
push eax
push ecx
lea edx, [ebp - 0x30]
push edx
push esi
lea eax, [ebp - 0x510]
push eax
mov ecx, edi
call fcn.10057bc0
push eax
lea ecx, [ebp - 0x1e0]
push ecx
mov edx, ecx
push edx
call ebx
jmp 0x1004d55b
mov ecx, dword [ebp - 0x608]
mov edx, dword [ebp - 0x69c]
push 0
push 1
lea eax, [ebp - 0xc8]
push eax
mov eax, dword [ebp - 0x60c]
push ecx
push edx
push eax
lea ecx, [ebp - 0x30]
push ecx
push esi
lea edx, [ebp - 0x530]
push edx
mov ecx, edi
call fcn.10057bc0
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
push eax
lea eax, [ebp - 0x1e0]
push eax
mov ecx, eax
push ecx
call ebx
jmp 0x1004d55b
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
mov edx, dword [edi + 0x160]
mov eax, dword [ebp - 0x614]
add dword [ebp - 0x69c], edx
test eax, eax
jne 0x1004d0cf
lea eax, [ebp - 0x1e0]
push eax
lea ecx, [ebp - 0x150]
push ecx
mov edx, ecx
push edx
call ebx
mov eax, dword [ebp - 0x61c]
mov ecx, dword [eax + 0x6c]
mov eax, dword [ebp - 0x624]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x62c]
mov dword [ebp - 0x618], ecx
xor ecx, ecx
mov dword [ebp - 0x6b4], edx
mov dword [ebp - 0x1f0], ecx
mov dword [ebp - 0x1ec], ecx
mov dword [ebp - 0x1e8], ecx
mov dword [ebp - 0x1e4], ecx
cmp eax, ecx
je 0x1004da3e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x1004a7ec
mov edi, dword [eax + 8]
cmp byte [edi + 0x8d], 0
mov ecx, dword [eax]
mov dword [ebp - 0x614], ecx
jne 0x1004da3e
mov edx, dword [ebp - 0x624]
mov eax, dword [edx + 0x20]
sub eax, dword [edi + 0x164]
movzx ebx, byte [edi + 0xd8]
add eax, dword [ebp - 0x628]
cmp dword [ebp - 0x610], 0
mov dword [ebp - 0x608], eax
movzx eax, byte [edi + 0xd9]
mov dword [ebp - 0x604], eax
jle 0x1004d67e
mov ecx, 0xff
sub ecx, ebx
imul ecx, dword [ebp - 0x610]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
movzx edx, byte [edi + 0xda]
add ebx, ecx
mov ecx, 0xff
sub ecx, edx
imul ecx, dword [ebp - 0x610]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add dword [ebp - 0x604], eax
mov ecx, dword [edi + 0xc8]
mov eax, ecx
movzx edx, cl
sar eax, 0x10
shl edx, 0x10
and eax, 0xff
add eax, edx
mov edx, dword [edi + 0xcc]
and ecx, 0xff00
add eax, ecx
or ecx, 0xffffffff
sub ecx, ebx
shl ecx, 0x18
or eax, ecx
mov ecx, edx
movzx ebx, dl
sar ecx, 0x10
shl ebx, 0x10
and edx, 0xff00
and ecx, 0xff
add ebx, ecx
add ebx, edx
or edx, 0xffffffff
sub edx, dword [ebp - 0x604]
mov dword [ebp - 0x80], eax
xor eax, eax
shl edx, 0x18
or ebx, edx
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov eax, dword [edi + 0x154]
test eax, eax
je 0x1004d7b2
cmp eax, 2
je 0x1004d7b2
cmp eax, 1
jne 0x1004d7d9
mov edx, dword [ebp - 0x618]
cmp edx, dword [edi + 0x158]
jge 0x1004d72a
fldz
fstp qword [ebp - 0x6d4]
jmp 0x1004d7ee
mov eax, dword [edi + 0x15c]
cmp edx, eax
jge 0x1004d7a8
mov ecx, dword [edi + 0x158]
sub edx, ecx
mov dword [ebp - 0x604], edx
fild dword [ebp - 0x604]
sub eax, ecx
mov dword [ebp - 0x604], eax
fild dword [ebp - 0x604]
fdivp st(1)
fstp qword [ebp - 0x6d4]
fld qword [edi + 0x120]
fld qword [0x100eae30]
call fcn.100a8aaa
fld qword [0x100f0a20]
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x1004d7d7
fld qword [0x100f0a18]
fcompi st(1)
fstp st(0)
jbe 0x1004d7d9
fld1
mov eax, dword [ebp - 0x80]
fsub qword [ebp - 0x6d4]
mov dword [ebp - 0x80], ebx
mov ebx, eax
mov dword [ebp - 0x78], ebx
fstp qword [ebp - 0x6d4]
jmp 0x1004d7d9
fld1
fstp qword [ebp - 0x6d4]
jmp 0x1004d7e7
mov ecx, dword [ebp - 0x618]
xor eax, eax
cmp ecx, dword [edi + 0x158]
setge al
mov dword [ebp - 0x604], eax
fild dword [ebp - 0x604]
fstp qword [ebp - 0x6d4]
jmp 0x1004d7d9
fstp st(0)
fld1
fld qword [ebp - 0x6d4]
fcompi st(1)
fstp st(0)
jb 0x1004d7ee
mov dword [ebp - 0x7c], 0xfffffff
fldz
xor ecx, ecx
fld qword [edi + 0x118]
mov dword [ebp - 0x604], ecx
fcompi st(1)
fstp st(0)
jbe 0x1004d82c
fld qword [edi + 0x118]
fmul qword [0x100e7c38]
fmul qword [0x100e7dd8]
fadd qword [0x100edf10]
call fcn.100a7850
mov ecx, eax
or ecx, 1
mov dword [ebp - 0x604], ecx
cmp dword [edi + 0x110], 0
je 0x1004d83e
add ecx, 8
mov dword [ebp - 0x604], ecx
mov edx, dword [ebp - 0x634]
mov eax, dword [ebp - 0x638]
mov ecx, dword [ebp - 0x608]
push edx
mov edx, dword [ebp - 0x6b4]
push eax
push ecx
push edx
mov ecx, edi
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], 0xffffff
call fcn.10044dd0
mov ecx, edi
call fcn.100552c0
mov dword [ebp - 0x640], eax
fild dword [ebp - 0x640]
fld qword [ebp - 0x6d4]
fmul st(1), st(0)
fxch st(1)
fadd qword [edi + 0xa8]
fild dword [ebp - 0x604]
fmulp st(2)
faddp st(1)
call fcn.100a7850
sar eax, 3
mov dword [ebp - 0x74], eax
mov eax, dword [esi + 0x34]
sub eax, 0
je 0x1004d9d9
dec eax
je 0x1004d94a
dec eax
jne 0x1004da1e
mov ecx, dword [esi + 8]
mov edx, dword [ebp - 0x608]
push eax
push 1
add ecx, ecx
add ecx, ecx
sub edx, ecx
mov ecx, dword [ebp - 0x60c]
lea eax, [ebp - 0x80]
push eax
mov eax, dword [ebp - 0x6b4]
push edx
push eax
push ecx
lea edx, [ebp - 0x20]
push edx
push esi
lea eax, [ebp - 0x550]
push eax
mov ecx, edi
call fcn.10057bc0
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
push eax
lea ecx, [ebp - 0x1f0]
push ecx
mov edx, ecx
push edx
call ebx
mov ecx, dword [ebp - 0x608]
mov edx, dword [ebp - 0x6b4]
push 0
push 1
lea eax, [ebp - 0x80]
push eax
mov eax, dword [ebp - 0x60c]
push ecx
push edx
push eax
lea ecx, [ebp - 0x20]
push ecx
push esi
lea edx, [ebp - 0x570]
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x1f0]
push eax
mov ecx, eax
push ecx
call ebx
jmp 0x1004da24
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 0x608]
push 0
push 1
lea edx, [ebp - 0x80]
push edx
mov edx, dword [ebp - 0x6b4]
push eax
mov eax, dword [ebp - 0x60c]
add ecx, ecx
sub edx, ecx
push edx
push eax
lea ecx, [ebp - 0x20]
push ecx
push esi
lea edx, [ebp - 0x590]
push edx
mov ecx, edi
call fcn.10057bc0
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
push eax
lea eax, [ebp - 0x1f0]
push eax
mov ecx, eax
push ecx
call ebx
mov eax, dword [ebp - 0x608]
mov ecx, dword [esi + 4]
push 0
push 1
lea edx, [ebp - 0x80]
push edx
mov edx, dword [ebp - 0x6b4]
push eax
lea eax, [edx + ecx*2]
mov ecx, dword [ebp - 0x60c]
push eax
push ecx
lea edx, [ebp - 0x20]
push edx
push esi
lea eax, [ebp - 0x5b0]
push eax
mov ecx, edi
call fcn.10057bc0
push eax
lea ecx, [ebp - 0x1f0]
push ecx
mov edx, ecx
push edx
call ebx
jmp 0x1004da24
mov ecx, dword [ebp - 0x608]
mov edx, dword [ebp - 0x6b4]
push 0
push 1
lea eax, [ebp - 0x80]
push eax
mov eax, dword [ebp - 0x60c]
push ecx
push edx
push eax
lea ecx, [ebp - 0x20]
push ecx
push esi
lea edx, [ebp - 0x5d0]
push edx
mov ecx, edi
call fcn.10057bc0
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
push eax
lea eax, [ebp - 0x1f0]
push eax
mov ecx, eax
push ecx
call ebx
jmp 0x1004da24
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
mov edx, dword [edi + 0x160]
mov eax, dword [ebp - 0x614]
add dword [ebp - 0x6b4], edx
test eax, eax
jne 0x1004d5ce
lea eax, [ebp - 0x1f0]
jmp 0x1004df33
mov dword [ebp - 0x694], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x618], edx
mov dword [ebp - 0x1c0], edi
mov dword [ebp - 0x1bc], edi
mov dword [ebp - 0x1b8], edi
mov dword [ebp - 0x1b4], edi
cmp eax, edi
je 0x1004df2d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x1004a7ec
mov edi, dword [eax + 8]
cmp byte [edi + 0x8d], 0
mov ecx, dword [eax]
mov dword [ebp - 0x614], ecx
jne 0x1004df2d
mov edx, dword [ebp - 0x624]
mov eax, dword [edx + 0x20]
sub eax, dword [edi + 0x164]
movzx ebx, byte [edi + 0xd8]
add eax, dword [ebp - 0x628]
cmp dword [ebp - 0x610], 0
mov dword [ebp - 0x608], eax
movzx eax, byte [edi + 0xd9]
mov dword [ebp - 0x604], eax
jle 0x1004db28
mov ecx, 0xff
sub ecx, ebx
imul ecx, dword [ebp - 0x610]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
movzx edx, byte [edi + 0xda]
add ebx, ecx
mov ecx, 0xff
sub ecx, edx
imul ecx, dword [ebp - 0x610]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add dword [ebp - 0x604], eax
mov ecx, dword [edi + 0xc8]
mov eax, ecx
movzx edx, cl
sar eax, 0x10
shl edx, 0x10
and eax, 0xff
add eax, edx
mov edx, dword [edi + 0xcc]
and ecx, 0xff00
add eax, ecx
or ecx, 0xffffffff
sub ecx, ebx
shl ecx, 0x18
or eax, ecx
mov ecx, edx
movzx ebx, dl
sar ecx, 0x10
shl ebx, 0x10
and edx, 0xff00
and ecx, 0xff
add ebx, ecx
add ebx, edx
or edx, 0xffffffff
sub edx, dword [ebp - 0x604]
mov dword [ebp - 0xb0], eax
xor eax, eax
shl edx, 0x18
or ebx, edx
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], eax
mov eax, dword [edi + 0x154]
test eax, eax
je 0x1004dc77
cmp eax, 2
je 0x1004dc77
cmp eax, 1
jne 0x1004dc9e
mov edx, dword [ebp - 0x618]
cmp edx, dword [edi + 0x158]
jge 0x1004dbe6
fldz
fstp qword [ebp - 0x6c4]
jmp 0x1004dcb6
mov eax, dword [edi + 0x15c]
cmp edx, eax
jge 0x1004dc6d
mov ecx, dword [edi + 0x158]
sub edx, ecx
mov dword [ebp - 0x604], edx
fild dword [ebp - 0x604]
sub eax, ecx
mov dword [ebp - 0x604], eax
fild dword [ebp - 0x604]
fdivp st(1)
fstp qword [ebp - 0x6c4]
fld qword [edi + 0x120]
fld qword [0x100eae30]
call fcn.100a8aaa
fld qword [0x100f0a20]
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x1004dc9c
fld qword [0x100f0a18]
fcompi st(1)
fstp st(0)
jbe 0x1004dc9e
fld1
mov eax, dword [ebp - 0xb0]
fsub qword [ebp - 0x6c4]
mov dword [ebp - 0xb0], ebx
mov ebx, eax
mov dword [ebp - 0xa8], ebx
fstp qword [ebp - 0x6c4]
jmp 0x1004dc9e
fld1
fstp qword [ebp - 0x6c4]
jmp 0x1004dcac
mov ecx, dword [ebp - 0x618]
xor eax, eax
cmp ecx, dword [edi + 0x158]
setge al
mov dword [ebp - 0x604], eax
fild dword [ebp - 0x604]
fstp qword [ebp - 0x6c4]
jmp 0x1004dc9e
fstp st(0)
fld1
fld qword [ebp - 0x6c4]
fcompi st(1)
fstp st(0)
jb 0x1004dcb6
mov dword [ebp - 0xac], 0xfffffff
fldz
xor ecx, ecx
fld qword [edi + 0x118]
mov dword [ebp - 0x604], ecx
fcompi st(1)
fstp st(0)
jbe 0x1004dcf4
fld qword [edi + 0x118]
fmul qword [0x100e7c38]
fmul qword [0x100e7dd8]
fadd qword [0x100edf10]
call fcn.100a7850
mov ecx, eax
or ecx, 1
mov dword [ebp - 0x604], ecx
cmp dword [edi + 0x110], 0
je 0x1004dd06
add ecx, 8
mov dword [ebp - 0x604], ecx
mov edx, dword [ebp - 0x634]
mov eax, dword [ebp - 0x638]
mov ecx, dword [ebp - 0x608]
push edx
mov edx, dword [ebp - 0x694]
push eax
push ecx
push edx
mov ecx, edi
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x9c], 0xffffff
call fcn.10044dd0
mov ecx, edi
call fcn.100552c0
mov dword [ebp - 0x640], eax
fild dword [ebp - 0x640]
fld qword [ebp - 0x6c4]
fmul st(1), st(0)
fxch st(1)
fadd qword [edi + 0xa8]
fild dword [ebp - 0x604]
fmulp st(2)
faddp st(1)
call fcn.100a7850
sar eax, 3
mov dword [ebp - 0xa4], eax
mov eax, dword [esi + 0x34]
sub eax, 0
je 0x1004dec2
dec eax
je 0x1004de27
dec eax
jne 0x1004df0d
mov ecx, dword [esi + 8]
mov edx, dword [ebp - 0x608]
push eax
push 1
add ecx, ecx
add ecx, ecx
sub edx, ecx
mov ecx, dword [ebp - 0x60c]
lea eax, [ebp - 0xb0]
push eax
mov eax, dword [ebp - 0x694]
push edx
push eax
push ecx
lea edx, [ebp - 0x600]
push edx
push esi
lea eax, [ebp - 0x5f0]
push eax
mov ecx, edi
call fcn.10057bc0
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
push eax
lea ecx, [ebp - 0x1c0]
push ecx
mov edx, ecx
push edx
call ebx
mov ecx, dword [ebp - 0x608]
mov edx, dword [ebp - 0x694]
push 0
push 1
lea eax, [ebp - 0xb0]
push eax
mov eax, dword [ebp - 0x60c]
push ecx
push edx
push eax
lea ecx, [ebp - 0x600]
push ecx
push esi
lea edx, [ebp - 0x2c0]
push edx
mov ecx, edi
call fcn.10057bc0
push eax
lea eax, [ebp - 0x1c0]
push eax
mov ecx, eax
push ecx
call ebx
jmp 0x1004df13
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 0x608]
push 0
push 1
lea edx, [ebp - 0xb0]
push edx
mov edx, dword [ebp - 0x694]
push eax
mov eax, dword [ebp - 0x60c]
add ecx, ecx
sub edx, ecx
push edx
push eax
lea ecx, [ebp - 0x600]
push ecx
push esi
lea edx, [ebp - 0x2b0]
push edx
mov ecx, edi
call fcn.10057bc0
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
push eax
lea eax, [ebp - 0x1c0]
push eax
mov ecx, eax
push ecx
call ebx
mov eax, dword [ebp - 0x608]
mov ecx, dword [esi + 4]
push 0
push 1
lea edx, [ebp - 0xb0]
push edx
mov edx, dword [ebp - 0x694]
push eax
lea eax, [edx + ecx*2]
mov ecx, dword [ebp - 0x60c]
push eax
push ecx
lea edx, [ebp - 0x600]
push edx
push esi
lea eax, [ebp - 0x2d0]
push eax
mov ecx, edi
call fcn.10057bc0
push eax
lea ecx, [ebp - 0x1c0]
push ecx
mov edx, ecx
push edx
call ebx
jmp 0x1004df13
mov ecx, dword [ebp - 0x608]
mov edx, dword [ebp - 0x694]
push 0
push 1
lea eax, [ebp - 0xb0]
push eax
mov eax, dword [ebp - 0x60c]
push ecx
push edx
push eax
lea ecx, [ebp - 0x600]
push ecx
push esi
lea edx, [ebp - 0x290]
push edx
mov ecx, edi
call fcn.10057bc0
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
push eax
lea eax, [ebp - 0x1c0]
push eax
mov ecx, eax
push ecx
call ebx
jmp 0x1004df13
mov ebx, dword [sym.imp.USER32.dll_UnionRect]
mov edx, dword [edi + 0x160]
mov eax, dword [ebp - 0x614]
add dword [ebp - 0x694], edx
test eax, eax
jne 0x1004da78
lea eax, [ebp - 0x1c0]
push eax
lea ecx, [ebp - 0x150]
push ecx
mov edx, ecx
push edx
call ebx
mov eax, dword [ebp - 0x624]
mov ecx, dword [eax + 0x24]
add ecx, dword [eax + 0x20]
add dword [ebp - 0x628], ecx
cmp dword [ebp - 0x644], 0
jne 0x1004c661
mov eax, dword [ebp - 0x740]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1004df85
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x744]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1004dfa7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x748]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1004dfc9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x750]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1004dfeb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x648]
inc eax
mov dword [ebp - 0x648], eax
cmp eax, dword [ebp - 0x6a8]
jl 0x1004a702
mov ebx, dword [ebp - 0x6ac]
mov edi, dword [ebp - 0x6a8]
mov eax, dword [ebp - 0x714]
mov ecx, dword [ebp - 0x150]
mov edx, dword [ebp - 0x14c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x148]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x144]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
test edi, edi
je 0x1004e052
lea eax, [ebp - 0x150]
push eax
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x1004e052
xor esi, esi
jmp 0x1004e057
mov esi, 1
test ebx, ebx
je 0x1004e064
push ebx
call fcn.100a80e9
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100a6f5d
mov esp, ebp
pop ebp
ret 0x1c