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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1008b696
mov eax, dword fs:[0]
push eax
sub esp, 0x5f4
mov eax, dword [0x100ab040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x430], esi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x440], edi
mov dword [ebp - 4], 0
mov eax, dword [esi + 0x18]
mov ecx, dword [eax + 0x1b8]
mov dword [ebp - 0x42c], ecx
mov ecx, dword [eax + 0x1b0]
mov dword [ebp - 0x434], ecx
xor ecx, ecx
cmp dword [eax + 0x188], 0
mov dword [ebp - 0x420], ecx
mov dword [ebp - 0x410], ecx
mov ecx, dword [esi + 0x3c]
mov dword [ebp - 0x3d8], ecx
je 0x1003b8dc
test dword [eax + 0x22c], 0xff000000
je 0x1003b8dc
push 0
lea ecx, [ebp - 0x498]
mov dword [ebp - 0x498], 0
push ecx
push edi
push dword [edi + 0x18]
add eax, 0x178
mov dword [ebp - 0x494], 0
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov ecx, dword [ebp - 0x498]
mov eax, dword [ebp - 0x494]
mov dword [esi + 0x14], eax
mov dword [esi + 0xc], ecx
lea eax, [ecx + 4]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x18]
test dword [eax + 0x22c], 0xff000000
je 0x1003b8ff
cmp dword [eax + 0x188], 0
je 0x1003b8ff
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x46c], eax
jmp 0x1003b909
mov dword [ebp - 0x46c], 0
push 0
lea eax, [ebp - 0x57c]
mov dword [ebp - 0x57c], 0
push eax
push edi
push dword [edi + 0x3c]
lea eax, [esi + 0x43c]
mov dword [ebp - 0x578], 0
sub esp, 0x18
mov dword [ebp - 0x574], 0
mov ecx, esp
mov dword [ebp - 0x570], 0
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
push 0
lea eax, [ebp - 0x574]
push eax
push edi
push dword [edi + 0x3c]
lea eax, [esi + 0x454]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov eax, dword [esi + 0x18]
mov ecx, dword [eax + 0x1bc]
mov eax, dword [eax + 0x1b8]
mov dword [ebp - 0x45c], 0
mov dword [ebp - 0x458], 0
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x570]
add eax, dword [ebp - 0x574]
add eax, dword [ebp - 0x57c]
cmp dword [ebp - 0x578], ecx
mov dword [ebp - 0x3e4], eax
mov eax, dword [esi]
cmovg ecx, dword [ebp - 0x578]
mov dword [ebp - 0x404], ecx
mov ecx, esi
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [esi + 0x1c]
test al, al
mov eax, dword [sym.imp.USER32.dll_SetRect]
mov dword [ebp - 0x418], eax
jne 0x1003bb00
cmp dword [ecx + 0x10], 0
je 0x1003bb00
push edi
push dword [edi + 0x14]
lea eax, [ebp - 0x1c]
push ecx
push dword [ebp + 8]
mov ecx, esi
push eax
call fcn.1003a8e0
mov edi, dword [ebp - 0x404]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp eax, edi
mov dword [ebp - 0x45c], ecx
cmovg edi, eax
mov dword [ebp - 0x458], eax
cmp dword [0x100b1038], edi
jl 0x1003ba49
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x44]
call eax
test al, al
je 0x1003ba49
mov eax, dword [0x100b1038]
sub eax, edi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
jmp 0x1003ba4b
xor ecx, ecx
mov edi, dword [ebp - 0x458]
mov edx, dword [esi + 0x38]
add edi, ecx
add edi, dword [ebp - 0x3d8]
mov dword [ebp - 0x3d4], ecx
mov ecx, dword [esi + 0x38]
add ecx, dword [ebp - 0x45c]
mov eax, dword [ebp - 0x3d4]
add eax, dword [ebp - 0x3d8]
push edi
push ecx
push eax
push edx
lea edi, [esi + 0x6c]
push edi
call dword [ebp - 0x418]
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp - 0x3d4]
mov eax, dword [eax + 0x1ac]
lea eax, [eax + ecx*2]
mov ecx, dword [esi + 0x38]
add eax, dword [ebp - 0x458]
add dword [ebp - 0x3d8], eax
mov eax, dword [ebp - 0x45c]
lea eax, [eax + ecx*2]
xor ecx, ecx
add eax, dword [ebp - 0x3e4]
cmovns ecx, eax
mov eax, dword [esi]
mov dword [ebp - 0x420], ecx
mov dword [ebp - 0x410], ecx
mov ecx, esi
mov eax, dword [eax + 0x44]
call eax
test al, al
je 0x1003baeb
mov eax, dword [ebp - 0x420]
add eax, dword [0x100b1038]
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x410], eax
push dword [esi + 8]
push dword [esi + 4]
push edi
call dword [sym.imp.USER32.dll_OffsetRect]
mov edi, dword [ebp - 0x440]
jmp 0x1003bb22
cmp dword [ecx + 0x34], 0
jne 0x1003bb22
cmp dword [esi + 0x34], 0
je 0x1003bb22
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp - 0x3d8]
dec ecx
add ecx, dword [eax + 0x1bc]
mov dword [ebp - 0x3d8], ecx
mov eax, dword [esi + 0x1c]
cmp dword [eax + 0x34], 0
je 0x1003bbfd
push edi
push dword [edi + 0x14]
add eax, 0x24
mov ecx, esi
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x1c]
push eax
call fcn.1003a8e0
mov edi, dword [eax + 4]
mov ecx, dword [eax]
mov dword [ebp - 0x45c], ecx
mov dword [ebp - 0x458], edi
cmp dword [0x100b1038], edi
jl 0x1003bb7f
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x44]
call eax
mov edi, dword [ebp - 0x458]
test al, al
je 0x1003bb7f
mov eax, dword [0x100b1038]
sub eax, edi
cdq
sub eax, edx
sar eax, 1
jmp 0x1003bb81
xor eax, eax
mov ecx, dword [esi + 0x38]
add edi, eax
add edi, dword [ebp - 0x3d8]
add ecx, dword [ebp - 0x45c]
mov edx, dword [esi + 0x38]
push edi
push ecx
mov dword [ebp - 0x3d4], eax
lea edi, [esi + 0x7c]
add eax, dword [ebp - 0x3d8]
push eax
push edx
push edi
call dword [ebp - 0x418]
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp - 0x3d4]
push dword [esi + 8]
mov eax, dword [eax + 0x1ac]
push dword [esi + 4]
push edi
lea eax, [eax + ecx*2]
mov ecx, dword [esi + 0x38]
add eax, dword [ebp - 0x458]
add dword [ebp - 0x3d8], eax
mov eax, dword [ebp - 0x45c]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x420]
cmp ecx, eax
cmovle ecx, eax
mov dword [ebp - 0x420], ecx
mov dword [ebp - 0x410], ecx
call dword [sym.imp.USER32.dll_OffsetRect]
mov edi, dword [ebp - 0x440]
lea eax, [ebp - 0x584]
push 0
push eax
push edi
push dword [edi + 0x1c]
mov dword [ebp - 0x584], 0
xorps xmm0, xmm0
sub esp, 0x18
mov dword [ebp - 0x580], 0
mov ecx, esp
push 1
movups xmmword [ecx], xmm0
push 0x10098e0c
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.10006000
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov dword [ebp - 0x5a0], 0
mov dword [ebp - 0x59c], 0
mov dword [ebp - 0x598], 0
xorps xmm0, xmm0
mov dword [ebp - 0x450], 0
mov dword [ebp - 0x408], 0
mov dword [ebp - 0x448], 0
mov dword [ebp - 0x438], 0
mov dword [ebp - 0x424], 0
mov dword [ebp - 0x444], 0
mov byte [ebp - 0x439], 0
mov byte [ebp - 0x3f1], 0
mov byte [ebp - 0x3f2], 0
mov dword [ebp - 0x3e0], 0
movups xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x4bc], 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x4b8], 0
movq qword [ebp - 0x24], xmm0
movups xmmword [ebp - 0xe4], xmm0
mov dword [ebp - 0x4b4], 0
movups xmmword [ebp - 0xd4], xmm0
movups xmmword [ebp - 0xc4], xmm0
movups xmmword [ebp - 0xb4], xmm0
movups xmmword [ebp - 0xa4], xmm0
mov dword [ebp - 0x484], 0
mov dword [ebp - 0x480], 0
mov dword [ebp - 0x47c], 0
movups xmmword [ebp - 0x94], xmm0
mov dword [ebp - 0x4b0], 0
movups xmmword [ebp - 0x84], xmm0
mov dword [ebp - 0x4ac], 0
movups xmmword [ebp - 0x74], xmm0
mov dword [ebp - 0x4a8], 0
movups xmmword [ebp - 0x64], xmm0
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x4e4], 0
mov dword [ebp - 0x4e0], 0
mov dword [ebp - 0x4dc], 0
mov dword [ebp - 0x4d8], 0
mov dword [ebp - 0x4d4], 0
mov dword [ebp - 0x4d0], 0
mov dword [ebp - 0x4cc], 0
mov dword [ebp - 0x4c8], 0
mov dword [ebp - 0x4c4], 0
mov dword [ebp - 0x4fc], 0
mov dword [ebp - 0x4f8], 0
mov dword [ebp - 0x4f4], 0
mov byte [ebp - 4], 8
lea eax, [ebp - 0x4bc]
movq qword [ebp - 0x1c], xmm0
mov word [ebp - 0x14], 0
mov dword [ebp - 0x100], eax
lea eax, [ebp - 0x484]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x4b0]
mov dword [ebp - 0xf8], eax
lea eax, [ebp - 0x4e4]
mov dword [ebp - 0xf4], eax
lea eax, [ebp - 0x4d8]
mov dword [ebp - 0xf0], eax
lea eax, [ebp - 0x4cc]
mov dword [ebp - 0xec], eax
lea eax, [ebp - 0x4fc]
mov dword [ebp - 0xe8], eax
mov eax, dword [esi + 0x418]
mov ecx, dword [eax]
mov eax, ecx
and eax, 0x7c
mov dword [ebp - 0x3f0], eax
mov eax, ecx
shr eax, 2
test al, 1
je 0x1003be6f
lea ecx, [ebp - 0x4b0]
jmp 0x1003bec9
mov eax, ecx
shr eax, 6
test al, 1
je 0x1003be86
lea eax, [ebp - 0x4fc]
mov dword [ebp - 0x40c], eax
jmp 0x1003becf
mov eax, ecx
shr eax, 5
test al, 1
je 0x1003be9d
lea eax, [ebp - 0x4e4]
mov dword [ebp - 0x40c], eax
jmp 0x1003becf
mov eax, ecx
shr eax, 4
test al, 1
je 0x1003beb4
lea eax, [ebp - 0x4cc]
mov dword [ebp - 0x40c], eax
jmp 0x1003becf
shr ecx, 3
lea eax, [ebp - 0x4b0]
test cl, 1
lea ecx, [ebp - 0x4d8]
cmove ecx, eax
mov dword [ebp - 0x40c], ecx
mov eax, dword [esi + 0x34]
xor edx, edx
mov dword [ebp - 0x3f8], edx
test eax, eax
jle 0x1003cd3b
cmp edx, 0xa
jge 0x1003cd3b
lea eax, [edx + edx*2]
mov ecx, dword [esi + eax*4 + 0x368]
cmp ecx, dword [esi + eax*4 + 0x36c]
je 0x1003bf05
mov dword [esi + eax*4 + 0x36c], ecx
mov ecx, dword [esi + 0x18]
add ecx, 0x160
cmp dword [ecx + 0x14], 7
jbe 0x1003bf16
mov ecx, dword [ecx]
mov eax, dword [esi]
push ecx
push edx
push dword [esi + 0x2c]
lea ecx, [ebp - 0x164]
push ecx
mov ecx, esi
call dword [eax + 0x3c]
mov eax, dword [ebp - 0x3f8]
lea ecx, [ebp - 0xe4]
push 0
mov byte [ebp - 4], 9
lea edx, [ebp - 0x164]
xorps xmm0, xmm0
lea eax, [ecx + eax*8]
push eax
push edi
push dword [edi + 0x1c]
sub esp, 0x18
mov eax, esp
mov dword [ebp - 0x404], eax
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
cmp dword [ebp - 0x150], 7
mov ecx, dword [ebp - 0x154]
cmova edx, dword [ebp - 0x164]
mov dword [ebp - 0x3e8], edx
mov dword [ebp - 0x3fc], ecx
cmp ecx, 0x7ffffffe
ja 0x1003f9e4
mov dword [eax + 0x14], 7
cmp ecx, 7
ja 0x1003bfab
mov dword [eax + 0x10], ecx
movups xmm0, xmmword [edx]
movups xmmword [eax], xmm0
jmp 0x1003c012
or ecx, 7
cmp ecx, 0x7ffffffe
jbe 0x1003bfbd
mov ecx, SysReAllocString
jmp 0x1003bfc8
cmp ecx, 0xa
mov edx, 0xa
cmovb ecx, edx
mov dword [ebp - 0x3d0], ecx
lea ecx, [ebp - 0x3d0]
push ecx
push eax
call fcn.10005f90
mov edx, dword [ebp - 0x404]
mov ecx, dword [ebp - 0x3fc]
mov dword [edx + 0x10], ecx
mov ecx, dword [ebp - 0x3d0]
mov dword [edx + 0x14], ecx
mov ecx, dword [ebp - 0x3fc]
mov dword [edx], eax
lea ecx, [ecx*2 + 2]
push ecx
push dword [ebp - 0x3e8]
push eax
call fcn.10060530
add esp, 0x14
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov ecx, dword [ebp - 0x3f8]
mov eax, dword [ebp + ecx*8 - 0xe4]
mov ecx, dword [ebp - 0x450]
cmp ecx, eax
cmovle ecx, eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x450], ecx
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, 0x38e38e39
sub ecx, edx
mov dword [ebp - 0x404], edx
imul ecx
mov ecx, dword [ebp - 0x3f8]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ecx
jbe 0x1003f9ee
lea eax, [ecx + ecx*8]
shl eax, 2
mov dword [ebp - 0x3e8], eax
add eax, dword [ebp - 0x404]
mov dword [ebp - 0x3dc], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, 0x38e38e39
sub ecx, edx
mov dword [ebp - 0x404], edx
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [ebp - 0x3f8]
jbe 0x1003f9ee
mov edx, dword [ebp - 0x404]
add edx, dword [ebp - 0x3e8]
mov dword [ebp - 0x454], edx
mov ecx, edx
mov dword [ebp - 0x3d0], edx
cmp dword [edx + 0x14], 7
jbe 0x1003c0d3
mov ecx, dword [edx]
mov dword [ebp - 0x3d0], ecx
mov eax, dword [edx + 0x10]
test eax, eax
je 0x1003c0f2
nop word [eax + eax]
cmp word [ecx], 0xc
je 0x1003c208
add ecx, 2
sub eax, 1
jne 0x1003c0e0
or ecx, 0xffffffff
mov dword [ebp - 0x414], ecx
mov eax, dword [edx + 0x10]
mov byte [ebp - 0x3e9], 0
mov dword [ebp - 0x3fc], eax
test eax, eax
je 0x1003cf1e
cmp dword [edx + 0x14], 7
mov eax, edx
mov dword [ebp - 0x3d0], edx
jbe 0x1003c129
mov eax, dword [edx]
mov dword [ebp - 0x3d0], eax
movzx eax, word [eax]
mov edi, eax
mov dword [ebp - 0x44c], edi
mov edi, dword [ebp - 0x440]
cmp eax, 0xb
jne 0x1003c151
mov eax, dword [esi + 0x418]
mov eax, dword [eax]
shr eax, 1
test al, 1
je 0x1003c490
mov esi, dword [ebp - 0x3d0]
xor eax, eax
xorps xmm0, xmm0
mov dword [ebp - 0x10c], 0
movups xmmword [ebp - 0x11c], xmm0
mov dword [ebp - 0x108], 0
cmp word [esi], 0xb
mov esi, dword [ebp - 0x430]
sete al
mov dword [ebp - 0x404], eax
mov eax, dword [ebp - 0x3fc]
mov edi, dword [ebp - 0x404]
cmp eax, edi
jb 0x1003f9e9
sub eax, edi
sub ecx, edi
cmp eax, ecx
cmovb ecx, eax
cmp dword [edx + 0x14], 7
mov eax, edx
jbe 0x1003c1b1
mov eax, dword [edx]
push ecx
lea eax, [eax + edi*2]
push eax
lea ecx, [ebp - 0x11c]
call fcn.10006000
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x11c]
cmp dword [ebp - 0x108], 7
mov edi, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x10c]
cmova ecx, edi
seta dl
add eax, eax
mov dword [ebp - 0x3d0], eax
add eax, ecx
mov dword [ebp - 0x3d4], eax
lea ecx, [ebp - 0x11c]
mov eax, dword [ebp - 0x3d0]
test dl, dl
je 0x1003c248
add eax, edi
jmp 0x1003c250
test ecx, ecx
je 0x1003c0f2
sub ecx, dword [ebp - 0x3d0]
sar ecx, 1
mov dword [ebp - 0x414], ecx
cmp ecx, 0xffffffff
je 0x1003c0fb
lea eax, [ecx + 1]
cmp dword [edx + 0x10], eax
jbe 0x1003c0fb
mov eax, dword [edx + 0x10]
mov byte [ebp - 0x3e9], 1
mov dword [ebp - 0x3fc], eax
jmp 0x1003c113
add eax, ecx
lea edi, [ebp - 0x11c]
push 0xb
push eax
push edi
mov dword [ebp - 0x3d0], eax
call fcn.100450b0
mov edx, dword [ebp - 0x3d0]
mov edi, eax
mov dword [ebp - 0x3fc], edi
cmp eax, edx
je 0x1003c293
add eax, 2
cmp eax, edx
je 0x1003c293
movzx ecx, word [eax]
cmp ecx, 0xb
je 0x1003c286
mov word [edi], cx
add edi, 2
add eax, 2
cmp eax, edx
jne 0x1003c278
mov dword [ebp - 0x3fc], edi
cmp dword [ebp - 0x108], 7
lea ecx, [ebp - 0x11c]
mov eax, dword [ebp - 0x10c]
cmova ecx, dword [ebp - 0x11c]
seta byte [ebp - 0x3fd]
sub edi, ecx
mov dword [ebp - 0x41c], eax
mov ecx, dword [ebp - 0x3d4]
sub ecx, dword [ebp - 0x3fc]
sar edi, 1
sub eax, edi
sar ecx, 1
cmp eax, ecx
cmovb ecx, eax
cmp byte [ebp - 0x3fd], 0
lea eax, [ebp - 0x11c]
mov dword [ebp - 0x3d4], ecx
cmovne eax, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x3d4]
lea ecx, [eax + edi*2]
mov eax, dword [ebp - 0x41c]
sub eax, edx
mov dword [ebp - 0x41c], eax
sub eax, edi
lea eax, [eax*2 + 2]
push eax
lea eax, [ecx + edx*2]
push eax
push ecx
call fcn.10060530
mov eax, dword [ebp - 0x41c]
add esp, 0xc
mov edi, dword [ebp - 0x440]
mov dword [ebp - 0x10c], eax
test eax, eax
je 0x1003c446
mov eax, dword [ebp - 0x3f8]
lea ecx, [ebp - 0x94]
push 0
xorps xmm0, xmm0
lea edx, [ebp - 0x11c]
lea eax, [ecx + eax*8]
push eax
push edi
push dword [edi + 0x20]
sub esp, 0x18
mov eax, esp
mov dword [ebp - 0x404], eax
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
cmp dword [ebp - 0x108], 7
mov ecx, dword [ebp - 0x10c]
cmova edx, dword [ebp - 0x11c]
mov dword [ebp - 0x3e8], edx
mov dword [ebp - 0x3fc], ecx
cmp ecx, 0x7ffffffe
ja 0x1003f9e4
mov dword [eax + 0x14], 7
cmp ecx, 7
ja 0x1003c3b3
mov dword [eax + 0x10], ecx
movups xmm0, xmmword [edx]
movups xmmword [eax], xmm0
jmp 0x1003c41a
or ecx, 7
cmp ecx, 0x7ffffffe
jbe 0x1003c3c5
mov ecx, SysReAllocString
jmp 0x1003c3d0
cmp ecx, 0xa
mov edx, 0xa
cmovb ecx, edx
mov dword [ebp - 0x3d0], ecx
lea ecx, [ebp - 0x3d0]
push ecx
push eax
call fcn.10005f90
mov edx, dword [ebp - 0x404]
mov ecx, dword [ebp - 0x3fc]
mov dword [edx + 0x10], ecx
mov ecx, dword [ebp - 0x3d0]
mov dword [edx + 0x14], ecx
mov ecx, dword [ebp - 0x3fc]
mov dword [edx], eax
lea ecx, [ecx*2 + 2]
push ecx
push dword [ebp - 0x3e8]
push eax
call fcn.10060530
add esp, 0x14
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov ecx, dword [ebp - 0x3f8]
mov byte [ebp - 0x3f1], 1
mov eax, dword [ebp + ecx*8 - 0x94]
mov ecx, dword [ebp - 0x448]
cmp ecx, eax
cmovle ecx, eax
mov dword [ebp - 0x448], ecx
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x108]
cmp ecx, 7
jbe 0x1003c48a
mov edx, dword [ebp - 0x11c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003c480
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov edx, dword [ebp - 0x454]
cmp byte [ebp - 0x3e9], 0
je 0x1003cf1e
mov eax, dword [esi + 0x418]
test byte [eax], 1
jne 0x1003c4c1
cmp byte [eax + 4], 0
jne 0x1003c4b8
cmp word [ebp - 0x44c], 0xb
je 0x1003c4c1
mov byte [ebp - 0x3e9], 0
jmp 0x1003c4c8
mov byte [ebp - 0x3e9], 1
mov ecx, dword [ebp - 0x414]
xorps xmm0, xmm0
mov eax, dword [edx + 0x10]
inc ecx
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0
movups xmmword [ebp - 0x134], xmm0
cmp eax, ecx
jb 0x1003f9e9
sub eax, ecx
or edi, 0xffffffff
cmp eax, 0xffffffff
cmovb edi, eax
cmp dword [edx + 0x14], 7
mov dword [ebp - 0x404], edi
mov edi, dword [ebp - 0x440]
jbe 0x1003c517
mov edx, dword [edx]
push dword [ebp - 0x404]
lea eax, [edx + ecx*2]
push eax
lea ecx, [ebp - 0x134]
call fcn.10006000
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x134]
cmp dword [ebp - 0x120], 7
mov edx, dword [ebp - 0x134]
cmova eax, edx
mov dword [ebp - 0x3fc], edx
seta byte [ebp - 0x3fd]
cmp word [eax], 0xd
jne 0x1003caf6
mov dword [ebp - 0x490], 0
mov dword [ebp - 0x48c], 0
mov dword [ebp - 0x488], 0
mov byte [ebp - 4], 0xc
xorps xmm0, xmm0
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x138], 0
movups xmmword [ebp - 0x14c], xmm0
cmp eax, 1
jb 0x1003f9e9
dec eax
or ecx, 0xffffffff
cmp eax, 0xffffffff
cmovb ecx, eax
cmp byte [ebp - 0x3fd], 0
lea eax, [ebp - 0x134]
cmovne eax, edx
push ecx
add eax, 2
lea ecx, [ebp - 0x14c]
push eax
call fcn.10006000
push 1
push 0x10098e08
lea edx, [ebp - 0x14c]
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x490]
call fcn.10010c30
mov byte [ebp - 4], 0xc
add esp, 8
mov ecx, dword [ebp - 0x138]
cmp ecx, 7
jbe 0x1003c639
mov edx, dword [ebp - 0x14c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003c62f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x478], 0
mov dword [ebp - 0x3dc], ecx
mov dword [ebp - 0x474], ecx
mov dword [ebp - 0x470], ecx
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x490]
mov dword [ebp - 0x41c], eax
cmp eax, dword [ebp - 0x48c]
je 0x1003cac4
push eax
lea ecx, [ebp - 0x3cc]
call fcn.100287b0
lea eax, [ebp - 0x3cc]
mov byte [ebp - 4], 0xf
mov ecx, dword [esi + 0x418]
push eax
call fcn.10028700
mov byte [ebp - 0x3fd], al
test al, al
je 0x1003c6e6
mov eax, dword [ebp - 0x3dc]
lea ecx, [ebp - 0x3cc]
push ecx
cmp eax, dword [ebp - 0x470]
je 0x1003c6ce
mov ecx, eax
call fcn.10026d60
mov eax, dword [ebp - 0x3dc]
add eax, 0x1b0
mov dword [ebp - 0x474], eax
jmp 0x1003c6e0
push eax
lea ecx, [ebp - 0x478]
call fcn.100267b0
mov eax, dword [ebp - 0x474]
mov dword [ebp - 0x3dc], eax
mov eax, dword [ebp - 0x41c]
mov ecx, eax
cmp dword [eax + 0x14], 7
jbe 0x1003c6f6
mov ecx, dword [eax]
cmp word [ecx], 0x31
jne 0x1003ca20
lea ecx, [ebp - 0x100]
call fcn.1003fa10
mov eax, dword [esi + 0x18]
movzx ecx, byte [ebp - 0x3e9]
imul ecx, dword [eax + 0x1c0]
mov eax, dword [ebp - 0x3e0]
push ecx
lea ecx, [eax*8]
mov eax, dword [ebp - 0x484]
add eax, ecx
mov dword [ebp - 0x414], ecx
push eax
push edi
push dword [edi + 0x18]
lea eax, [ebp - 0x3b4]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
cmp byte [ebp - 0x3e9], 0
je 0x1003c790
mov eax, dword [ebp - 0x4bc]
add eax, dword [ebp - 0x414]
push 0
push eax
push edi
push dword [edi + 0x24]
lea eax, [ebp - 0x39c]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov byte [ebp - 0x439], 1
cmp byte [ebp - 0x3fd], 0
mov eax, dword [esi + 0x418]
je 0x1003c8ce
mov eax, dword [eax]
shr eax, 2
test al, 1
je 0x1003c7d7
mov eax, dword [ebp - 0x4b0]
add eax, dword [ebp - 0x414]
push 0
push eax
push edi
push dword [edi + 0x28]
lea eax, [ebp - 0x294]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov eax, dword [esi + 0x418]
mov eax, dword [eax]
shr eax, 5
test al, 1
je 0x1003c811
mov eax, dword [ebp - 0x4e4]
add eax, dword [ebp - 0x414]
push 0
push eax
push edi
push dword [edi + 0x2c]
lea eax, [ebp - 0x24c]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov eax, dword [esi + 0x418]
mov eax, dword [eax]
shr eax, 3
test al, 1
je 0x1003c84e
mov eax, dword [ebp - 0x4d8]
mov ecx, dword [ebp - 0x3e0]
push 0
lea eax, [eax + ecx*8]
push eax
push edi
push dword [edi + 0x30]
lea eax, [ebp - 0x27c]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov eax, dword [esi + 0x418]
mov eax, dword [eax]
shr eax, 4
test al, 1
je 0x1003c88b
mov eax, dword [ebp - 0x4cc]
mov ecx, dword [ebp - 0x3e0]
push 0
lea eax, [eax + ecx*8]
push eax
push edi
push dword [edi + 0x34]
lea eax, [ebp - 0x264]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov eax, dword [esi + 0x418]
mov eax, dword [eax]
shr eax, 6
test al, 1
je 0x1003c92c
mov eax, dword [ebp - 0x4fc]
mov ecx, dword [ebp - 0x3e0]
push 0
lea eax, [eax + ecx*8]
push eax
push edi
push dword [edi + 0x38]
lea eax, [ebp - 0x234]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
jmp 0x1003c92c
test dword [eax], 0xfffffffc
je 0x1003c92c
cmp dword [ebp - 0x2fc], 0
je 0x1003c92c
mov eax, dword [ebp - 0x40c]
lea ecx, [ebp - 0x33c]
push 0
mov eax, dword [eax]
add eax, dword [ebp - 0x414]
push eax
push edi
push dword [edi + 0x54]
lea eax, [ebp - 0x5c4]
push eax
call fcn.1002a0c0
sub esp, 0x18
mov byte [ebp - 4], 0x10
mov ecx, esp
mov edx, eax
push ecx
call fcn.10025f80
mov eax, dword [esi]
add esp, 4
mov ecx, esi
call dword [eax + 0x48]
lea ecx, [ebp - 0x5c4]
call fcn.10011560
mov ecx, dword [ebp - 0x3e0]
mov eax, dword [ebp - 0x4bc]
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x3d4], eax
mov eax, dword [ebp - 0x484]
mov edx, dword [eax + ecx*8]
mov eax, dword [ebp - 0x3d4]
cmp eax, edx
cmovle eax, edx
cmp dword [ebp - 0x408], eax
jg 0x1003c976
cmp dword [ebp - 0x3d4], edx
mov dword [ebp - 0x408], edx
cmovg edx, dword [ebp - 0x3d4]
mov dword [ebp - 0x408], edx
mov eax, dword [ebp - 0x4fc]
mov edx, dword [eax + ecx*8]
mov eax, dword [ebp - 0x4b0]
mov eax, dword [eax + ecx*8]
cmp eax, edx
mov dword [ebp - 0x3d0], eax
cmovle eax, edx
cmp dword [ebp - 0x438], eax
jg 0x1003c9b4
cmp dword [ebp - 0x3d0], edx
mov dword [ebp - 0x438], edx
cmovg edx, dword [ebp - 0x3d0]
mov dword [ebp - 0x438], edx
mov eax, dword [ebp - 0x4cc]
mov edx, dword [eax + ecx*8]
mov eax, dword [ebp - 0x4e4]
mov eax, dword [eax + ecx*8]
cmp eax, edx
mov dword [ebp - 0x3d0], eax
cmovle eax, edx
cmp dword [ebp - 0x424], eax
jg 0x1003c9f2
cmp dword [ebp - 0x3d0], edx
mov dword [ebp - 0x424], edx
cmovg edx, dword [ebp - 0x3d0]
mov dword [ebp - 0x424], edx
mov eax, dword [ebp - 0x4d8]
mov edx, dword [ebp - 0x444]
cmp edx, dword [eax + ecx*8]
cmovle edx, dword [eax + ecx*8]
inc ecx
mov eax, dword [esi + 0x418]
mov dword [ebp - 0x444], edx
mov dword [ebp - 0x3e0], ecx
test dword [eax], 0xfffffffd
je 0x1003ca4c
lea ecx, [ebp - 0x3cc]
mov byte [ebp - 4], 0xe
call fcn.10024ba0
mov eax, dword [ebp - 0x41c]
add eax, 0x18
mov dword [ebp - 0x41c], eax
cmp eax, dword [ebp - 0x48c]
jne 0x1003c673
jmp 0x1003ca5b
lea ecx, [ebp - 0x3cc]
mov byte [ebp - 4], 0xe
call fcn.10024ba0
mov edx, dword [ebp - 0x478]
mov ecx, dword [ebp - 0x3dc]
cmp edx, ecx
je 0x1003cad5
mov eax, dword [ebp - 0x3f8]
mov edi, dword [ebp - 0x3f8]
mov byte [ebp - 0x3f2], 1
mov byte [ebp + eax - 0x1c], 1
mov eax, dword [esi + 0x1c]
cmp edi, dword [eax + 0x54]
mov edi, dword [ebp - 0x440]
jne 0x1003cad5
mov eax, dword [esi + 0x418]
cmp byte [eax + 5], 0
je 0x1003cad5
sub ecx, edx
mov eax, 0x4bda12f7
imul ecx
lea ecx, [ebp - 0x5a0]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push dword [ebp - 0x478]
call fcn.10026130
jmp 0x1003cad5
lea ecx, [ebp - 0x100]
call fcn.1003fa10
inc dword [ebp - 0x3e0]
lea ecx, [ebp - 0x478]
call fcn.10025950
lea ecx, [ebp - 0x490]
call fcn.10011560
mov ecx, dword [ebp - 0x134]
jmp 0x1003cc91
lea ecx, [ebp - 0x100]
call fcn.1003fa10
mov eax, dword [esi + 0x18]
movzx ecx, byte [ebp - 0x3e9]
imul ecx, dword [eax + 0x1c0]
mov eax, dword [ebp - 0x3e0]
push ecx
lea ecx, [eax*8]
mov eax, dword [ebp - 0x484]
add eax, ecx
mov dword [ebp - 0x404], ecx
push eax
push edi
push dword [edi + 0x18]
sub esp, 0x18
mov ecx, esp
push dword [ebp - 0x3dc]
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
cmp byte [ebp - 0x3e9], 0
je 0x1003cc3a
mov eax, dword [ebp - 0x4bc]
lea edx, [ebp - 0x134]
add eax, dword [ebp - 0x404]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x124]
push 0
push eax
push edi
push dword [edi + 0x24]
sub esp, 0x18
cmp byte [ebp - 0x3fd], 0
mov eax, esp
cmovne edx, dword [ebp - 0x3fc]
mov dword [ebp - 0x404], eax
mov dword [ebp - 0x3e8], edx
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
cmp ecx, 0x7ffffffe
ja 0x1003f9e4
mov dword [eax + 0x14], 7
cmp ecx, 7
ja 0x1003cbcc
mov dword [eax + 0x10], ecx
movups xmm0, xmmword [edx]
movups xmmword [eax], xmm0
jmp 0x1003cc33
or ecx, 7
cmp ecx, 0x7ffffffe
jbe 0x1003cbde
mov ecx, SysReAllocString
jmp 0x1003cbe9
cmp ecx, 0xa
mov edx, 0xa
cmovb ecx, edx
mov dword [ebp - 0x3d0], ecx
lea ecx, [ebp - 0x3d0]
push ecx
push eax
call fcn.10005f90
mov edx, dword [ebp - 0x404]
mov ecx, dword [ebp - 0x124]
mov dword [edx + 0x10], ecx
mov ecx, dword [ebp - 0x3d0]
mov dword [edx + 0x14], ecx
mov ecx, dword [ebp - 0x124]
mov dword [edx], eax
lea ecx, [ecx*2 + 2]
push ecx
push dword [ebp - 0x3e8]
push eax
call fcn.10060530
add esp, 0x14
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov ecx, dword [ebp - 0x3e0]
mov eax, dword [ebp - 0x4bc]
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x3d4], eax
mov eax, dword [ebp - 0x484]
mov edx, dword [eax + ecx*8]
mov eax, dword [ebp - 0x3d4]
cmp eax, edx
cmovle eax, edx
cmp dword [ebp - 0x408], eax
jg 0x1003cc84
cmp dword [ebp - 0x3d4], edx
mov dword [ebp - 0x408], edx
cmovg edx, dword [ebp - 0x3d4]
mov dword [ebp - 0x408], edx
inc ecx
mov dword [ebp - 0x3e0], ecx
mov ecx, dword [ebp - 0x3fc]
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x120]
cmp eax, 7
jbe 0x1003cccf
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1003ccc5
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push edx
push ecx
call fcn.1005a5aa
add esp, 8
mov ecx, dword [ebp - 0x3e0]
mov edx, dword [ebp - 0x3f8]
mov byte [ebp - 4], 8
mov dword [ebp + edx*4 - 0x44], ecx
mov ecx, dword [ebp - 0x150]
cmp ecx, 7
jbe 0x1003cd29
mov edx, dword [ebp - 0x164]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003cd19
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
mov edx, dword [ebp - 0x3f8]
add esp, 8
mov eax, dword [esi + 0x34]
inc edx
mov dword [ebp - 0x3f8], edx
cmp edx, eax
jl 0x1003bee2
mov edx, dword [ebp - 0x3d8]
xor edi, edi
xor ecx, ecx
mov dword [ebp - 0x3d0], edx
mov dword [ebp - 0x3dc], edi
mov dword [ebp - 0x414], ecx
test eax, eax
jle 0x1003d7b0
mov esi, edx
mov dword [ebp - 0x3d4], esi
mov esi, dword [ebp - 0x430]
nop dword [eax]
cmp ecx, 0xa
jge 0x1003d7ae
test edi, edi
je 0x1003cd94
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x1b4]
add eax, edx
mov dword [ebp - 0x3d8], eax
mov dword [ebp - 0x3d4], eax
mov eax, dword [esi + 0x18]
xorps xmm0, xmm0
mov ecx, dword [esi + 0x38]
mov edx, dword [ebp - 0x414]
movzx esi, byte [ebp - 0x439]
imul esi, dword [ebp - 0x434]
movups xmmword [ebp - 0x2bc], xmm0
movups xmmword [ebp - 0x2ac], xmm0
movups xmmword [ebp - 0x29c], xmm0
movups xmmword [ebp - 0x28c], xmm0
movups xmmword [ebp - 0x27c], xmm0
movups xmmword [ebp - 0x26c], xmm0
movups xmmword [ebp - 0x25c], xmm0
movups xmmword [ebp - 0x24c], xmm0
movups xmmword [ebp - 0x23c], xmm0
movups xmmword [ebp - 0x22c], xmm0
add ecx, dword [eax + 0x1bc]
mov eax, dword [ebp + edx*8 - 0xe0]
add ecx, dword [ebp - 0x46c]
mov dword [ebp - 0x3fc], eax
mov eax, dword [ebp - 0x4bc]
mov dword [ebp - 0x3e0], ecx
lea ecx, [eax + edi*8]
mov eax, dword [ebp - 0x484]
add esi, dword [eax + edi*8 + 4]
mov eax, esi
mov dword [ebp - 0x410], esi
add eax, dword [ecx + 4]
mov esi, dword [ebp - 0x430]
mov dword [ebp - 0x410], eax
mov eax, dword [ebp + edx*8 - 0x90]
mov dword [ebp - 0x40c], eax
mov eax, dword [ebp - 0x4b0]
lea edx, [eax + edi*8]
mov eax, dword [ebp - 0x4fc]
lea ecx, [eax + edi*8]
mov eax, dword [esi + 0x418]
mov esi, dword [ebp - 0x3dc]
mov edi, dword [eax]
mov eax, edi
shr eax, 6
mov dword [ebp - 0x3f8], eax
mov eax, edi
shr eax, 2
and dword [ebp - 0x3f8], eax
mov eax, dword [ebp - 0x3f8]
and eax, 1
imul eax, dword [ebp - 0x434]
add eax, dword [ecx + 4]
add eax, dword [edx + 4]
mov edx, edi
mov dword [ebp - 0x3f8], eax
mov eax, dword [ebp - 0x4cc]
shr edx, 5
lea ecx, [eax + esi*8]
mov eax, dword [ebp - 0x4e4]
shr edi, 4
and edx, edi
and edx, 1
imul edx, dword [ebp - 0x434]
add edx, dword [eax + esi*8 + 4]
mov eax, dword [ebp - 0x4d8]
add edx, dword [ecx + 4]
mov dword [ebp - 0x41c], edx
mov edi, dword [eax + esi*8 + 4]
mov eax, dword [ebp - 0x414]
mov dword [ebp - 0x3e8], edi
movzx ecx, byte [ebp + eax - 0x1c]
imul ecx, dword [ebp - 0x580]
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
mov esi, eax
mov dword [ebp - 0x454], eax
cmp edx, esi
cmovg eax, edx
cmp dword [ebp - 0x3f8], eax
mov eax, dword [ebp - 0x3f8]
jle 0x1003cf81
mov dword [ebp - 0x44c], eax
jmp 0x1003cf98
lea ecx, [ebp - 0x100]
call fcn.1003fa10
mov eax, dword [ebp - 0x484]
mov ecx, dword [ebp - 0x3e0]
push 0
lea eax, [eax + ecx*8]
push eax
push edi
push dword [edi + 0x18]
sub esp, 0x18
mov ecx, esp
push dword [ebp - 0x3dc]
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov ecx, dword [ebp - 0x3e0]
mov eax, dword [ebp - 0x484]
mov edx, dword [ebp - 0x408]
cmp edx, dword [eax + ecx*8]
cmovle edx, dword [eax + ecx*8]
inc ecx
mov dword [ebp - 0x408], edx
mov dword [ebp - 0x3e0], ecx
jmp 0x1003ccd5
mov esi, dword [ebp - 0x454]
cmp edx, esi
cmovg esi, edx
mov dword [ebp - 0x44c], esi
mov esi, dword [ebp - 0x454]
mov edx, dword [ebp - 0x40c]
cmp edx, dword [ebp - 0x44c]
mov edx, dword [ebp - 0x41c]
jle 0x1003cfb4
mov eax, dword [ebp - 0x40c]
jmp 0x1003cfd3
cmp edx, esi
cmovg esi, edx
cmp eax, esi
jg 0x1003cfd3
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
cmp edx, eax
jle 0x1003cfcc
mov eax, edx
jmp 0x1003cfd3
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
mov esi, dword [ebp - 0x410]
cmp esi, eax
jle 0x1003cfe4
mov eax, esi
jmp 0x1003d05e
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
cmp edx, eax
jle 0x1003cff3
mov esi, edx
jmp 0x1003cffa
cmp edi, ecx
mov esi, ecx
cmovg esi, edi
mov eax, dword [ebp - 0x3f8]
cmp eax, esi
jg 0x1003d01a
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
cmp edx, eax
jle 0x1003d013
mov eax, edx
jmp 0x1003d01a
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
mov esi, dword [ebp - 0x40c]
cmp esi, eax
jle 0x1003d028
mov eax, esi
jmp 0x1003d05e
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
cmp edx, eax
jle 0x1003d037
mov esi, edx
jmp 0x1003d03e
cmp edi, ecx
mov esi, ecx
cmovg esi, edi
mov eax, dword [ebp - 0x3f8]
cmp eax, esi
jg 0x1003d05e
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
cmp edx, eax
jle 0x1003d057
mov eax, edx
jmp 0x1003d05e
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
mov esi, dword [ebp - 0x3fc]
add esi, dword [ebp - 0x434]
mov edi, dword [ebp - 0x3e8]
mov edx, dword [ebp - 0x41c]
cmp esi, eax
jle 0x1003d08b
mov ecx, dword [ebp - 0x3fc]
add ecx, dword [ebp - 0x434]
jmp 0x1003d192
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
cmp edx, eax
jle 0x1003d09a
mov esi, edx
jmp 0x1003d0a1
cmp edi, ecx
mov esi, ecx
cmovg esi, edi
mov eax, dword [ebp - 0x3f8]
cmp eax, esi
jg 0x1003d0c1
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
cmp edx, eax
jle 0x1003d0ba
mov eax, edx
jmp 0x1003d0c1
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
mov esi, dword [ebp - 0x40c]
cmp esi, eax
jle 0x1003d0cf
mov eax, esi
jmp 0x1003d105
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
cmp edx, eax
jle 0x1003d0de
mov esi, edx
jmp 0x1003d0e5
cmp edi, ecx
mov esi, ecx
cmovg esi, edi
mov eax, dword [ebp - 0x3f8]
cmp eax, esi
jg 0x1003d105
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
cmp edx, eax
jle 0x1003d0fe
mov eax, edx
jmp 0x1003d105
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
mov esi, dword [ebp - 0x410]
cmp esi, eax
jle 0x1003d116
mov ecx, esi
jmp 0x1003d192
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
cmp edx, eax
jle 0x1003d125
mov esi, edx
jmp 0x1003d12c
cmp edi, ecx
mov esi, ecx
cmovg esi, edi
mov eax, dword [ebp - 0x3f8]
cmp eax, esi
jg 0x1003d14c
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
cmp edx, eax
jle 0x1003d145
mov eax, edx
jmp 0x1003d14c
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
mov esi, dword [ebp - 0x40c]
cmp esi, eax
jle 0x1003d15a
mov ecx, esi
jmp 0x1003d192
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
cmp edx, eax
jle 0x1003d169
mov esi, edx
jmp 0x1003d170
cmp edi, ecx
mov esi, ecx
cmovg esi, edi
mov eax, dword [ebp - 0x3f8]
cmp eax, esi
jle 0x1003d17e
mov ecx, eax
jmp 0x1003d192
cmp edi, ecx
mov eax, ecx
cmovg eax, edi
cmp edx, eax
jle 0x1003d18d
mov ecx, edx
jmp 0x1003d192
cmp edi, ecx
cmovg ecx, edi
mov eax, dword [ebp - 0x3d8]
mov esi, dword [ebp - 0x434]
add eax, ecx
add esi, dword [ebp - 0x3fc]
mov edx, eax
mov ecx, dword [ebp - 0x414]
sub edx, esi
add edx, dword [ebp - 0x3fc]
push edx
mov dword [ebp - 0x3d8], eax
sub eax, esi
mov ecx, dword [ebp + ecx*8 - 0xe4]
add ecx, dword [ebp - 0x3e0]
push ecx
push eax
push dword [ebp - 0x3e0]
lea eax, [ebp - 0x2bc]
push eax
call dword [ebp - 0x418]
mov esi, dword [ebp - 0x430]
lea eax, [ebp - 0x2bc]
push dword [esi + 8]
push dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [ebp - 0x450]
add eax, dword [ebp - 0x42c]
add dword [ebp - 0x3e0], eax
cmp byte [ebp - 0x439], 0
mov edi, dword [ebp - 0x3e8]
je 0x1003d275
mov eax, dword [ebp - 0x4bc]
mov ecx, dword [ebp - 0x3dc]
mov edx, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + ecx*8]
sub edx, dword [ebp - 0x410]
add edx, dword [ebp - 0x3d8]
add ecx, dword [ebp - 0x3e0]
mov eax, dword [ebp - 0x3d8]
sub eax, dword [ebp - 0x410]
push edx
push ecx
push eax
push dword [ebp - 0x3e0]
lea eax, [ebp - 0x2ac]
push eax
call dword [ebp - 0x418]
push dword [esi + 8]
lea eax, [ebp - 0x2ac]
push dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [ebp - 0x484]
mov ecx, dword [ebp - 0x3dc]
push dword [ebp - 0x3d8]
mov edx, dword [eax + ecx*8]
lea ecx, [eax + ecx*8]
add edx, dword [ebp - 0x3e0]
mov eax, dword [ebp - 0x3d8]
sub eax, dword [ecx + 4]
push edx
push eax
push dword [ebp - 0x3e0]
lea eax, [ebp - 0x29c]
push eax
call dword [ebp - 0x418]
push dword [esi + 8]
lea eax, [ebp - 0x29c]
push dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
movzx eax, byte [ebp - 0x3f1]
imul eax, dword [ebp - 0x42c]
mov ecx, dword [ebp - 0x408]
mov edx, dword [ebp - 0x3e0]
lea eax, [ecx + eax*2]
add edx, eax
cmp byte [ebp - 0x3f1], 0
mov dword [ebp - 0x3e0], edx
je 0x1003d33c
mov eax, dword [ebp - 0x414]
push dword [ebp - 0x3d8]
mov ecx, dword [ebp + eax*8 - 0x94]
mov eax, dword [ebp - 0x3d8]
add ecx, edx
sub eax, dword [ebp - 0x40c]
push ecx
push eax
push edx
lea eax, [ebp - 0x28c]
push eax
call dword [ebp - 0x418]
push dword [esi + 8]
lea eax, [ebp - 0x28c]
push dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov edx, dword [ebp - 0x3e0]
mov eax, dword [esi + 0x418]
mov ecx, dword [eax]
test cl, 0x44
jne 0x1003d356
cmp dword [ebp - 0x3f0], 0
je 0x1003d356
xor eax, eax
jmp 0x1003d35b
mov eax, 2
imul eax, dword [ebp - 0x42c]
shr ecx, 2
add eax, dword [ebp - 0x448]
add edx, eax
mov dword [ebp - 0x3e0], edx
test cl, 1
je 0x1003d3d2
mov eax, dword [ebp - 0x4b0]
mov ecx, dword [ebp - 0x3dc]
mov edx, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + ecx*8]
sub edx, dword [ebp - 0x3f8]
add edx, dword [ebp - 0x3d8]
add ecx, dword [ebp - 0x3e0]
mov eax, dword [ebp - 0x3d8]
sub eax, dword [ebp - 0x3f8]
push edx
push ecx
push eax
push dword [ebp - 0x3e0]
lea eax, [ebp - 0x27c]
push eax
call dword [ebp - 0x418]
push dword [esi + 8]
lea eax, [ebp - 0x27c]
push dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esi + 0x418]
mov eax, dword [eax]
shr eax, 6
test al, 1
je 0x1003d430
mov eax, dword [ebp - 0x4fc]
mov ecx, dword [ebp - 0x3dc]
push dword [ebp - 0x3d8]
mov edx, dword [eax + ecx*8]
lea ecx, [eax + ecx*8]
add edx, dword [ebp - 0x3e0]
mov eax, dword [ebp - 0x3d8]
sub eax, dword [ecx + 4]
push edx
push eax
push dword [ebp - 0x3e0]
lea eax, [ebp - 0x26c]
push eax
call dword [ebp - 0x418]
push dword [esi + 8]
lea eax, [ebp - 0x26c]
push dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esi + 0x418]
mov edx, dword [ebp - 0x438]
mov ecx, dword [eax]
test cl, 0x30
mov eax, 0
cmovne eax, dword [ebp - 0x42c]
shr ecx, 5
lea eax, [edx + eax*2]
add dword [ebp - 0x3e0], eax
test cl, 1
je 0x1003d4b8
mov eax, dword [ebp - 0x4e4]
mov ecx, dword [ebp - 0x3dc]
mov edx, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + ecx*8]
sub edx, dword [ebp - 0x41c]
add edx, dword [ebp - 0x3d8]
add ecx, dword [ebp - 0x3e0]
mov eax, dword [ebp - 0x3d8]
sub eax, dword [ebp - 0x41c]
push edx
push ecx
push eax
push dword [ebp - 0x3e0]
lea eax, [ebp - 0x25c]
push eax
call dword [ebp - 0x418]
push dword [esi + 8]
lea eax, [ebp - 0x25c]
push dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esi + 0x418]
mov eax, dword [eax]
shr eax, 4
test al, 1
je 0x1003d516
mov eax, dword [ebp - 0x4cc]
mov ecx, dword [ebp - 0x3dc]
push dword [ebp - 0x3d8]
mov edx, dword [eax + ecx*8]
lea ecx, [eax + ecx*8]
add edx, dword [ebp - 0x3e0]
mov eax, dword [ebp - 0x3d8]
sub eax, dword [ecx + 4]
push edx
push eax
push dword [ebp - 0x3e0]
lea eax, [ebp - 0x24c]
push eax
call dword [ebp - 0x418]
push dword [esi + 8]
lea eax, [ebp - 0x24c]
push dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esi + 0x418]
mov edx, dword [ebp - 0x444]
mov ecx, dword [eax]
shr ecx, 3
movzx eax, cl
and eax, 1
imul eax, dword [ebp - 0x42c]
lea eax, [edx + eax*2]
add eax, dword [ebp - 0x424]
add dword [ebp - 0x3e0], eax
test cl, 1
je 0x1003d598
push dword [ebp - 0x3d8]
mov eax, dword [ebp - 0x4d8]
mov edx, dword [ebp - 0x3d8]
mov esi, dword [ebp - 0x3dc]
sub edx, edi
mov edi, dword [ebp - 0x3e0]
mov ecx, edi
push edi
push edx
sub ecx, dword [eax + esi*8]
lea eax, [ebp - 0x23c]
push ecx
push eax
call dword [ebp - 0x418]
mov esi, dword [ebp - 0x430]
lea eax, [ebp - 0x23c]
push dword [esi + 8]
push dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
jmp 0x1003d59e
mov edi, dword [ebp - 0x3e0]
movzx edx, byte [ebp - 0x3f2]
mov eax, edx
imul eax, dword [ebp - 0x42c]
lea edi, [edi + eax*2]
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x3fc], edi
mov ecx, dword [eax + 0x1bc]
mov eax, dword [ebp - 0x584]
sub eax, ecx
imul eax, edx
add eax, dword [esi + 0x38]
lea ecx, [eax + ecx*2]
mov eax, dword [ebp - 0x414]
mov dword [ebp - 0x3e8], ecx
cmp byte [ebp + eax - 0x1c], 0
je 0x1003d677
mov eax, dword [ebp - 0x420]
sub eax, ecx
cmp edi, eax
cmovg eax, edi
mov edi, eax
mov eax, dword [ebp - 0x3d4]
add eax, dword [ebp - 0x580]
add eax, dword [ebp - 0x3d8]
cdq
sub eax, edx
mov dword [ebp - 0x3fc], edi
add edi, dword [ebp - 0x584]
sar eax, 1
sub eax, dword [ebp - 0x434]
mov dword [ebp - 0x404], eax
mov eax, dword [ebp - 0x3d4]
sub eax, dword [ebp - 0x580]
add eax, dword [ebp - 0x3d8]
push dword [ebp - 0x404]
cdq
sub eax, edx
sar eax, 1
sub eax, dword [ebp - 0x434]
push edi
push eax
push dword [ebp - 0x3fc]
lea eax, [ebp - 0x22c]
push eax
call dword [ebp - 0x418]
push dword [esi + 8]
lea eax, [ebp - 0x22c]
push dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [ebp - 0x414]
lea eax, [eax + eax*2]
mov edx, dword [esi + eax*4 + 0x36c]
lea eax, [esi + eax*4]
cmp edx, dword [eax + 0x370]
je 0x1003d6ad
mov ecx, 0x28
lea esi, [ebp - 0x2bc]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
add dword [eax + 0x36c], 0xa0
mov esi, dword [ebp - 0x430]
jmp 0x1003d6c0
lea ecx, [ebp - 0x2bc]
push ecx
push edx
lea ecx, [eax + 0x368]
call fcn.10040620
mov eax, dword [ebp - 0x3fc]
add eax, dword [ebp - 0x3e8]
cmp dword [ebp - 0x420], eax
mov edi, dword [ebp - 0x3dc]
cmovg eax, dword [ebp - 0x420]
mov ecx, eax
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x420], ecx
mov dword [ebp - 0x410], ecx
mov ecx, dword [ebp - 0x414]
mov eax, dword [eax + 0x1bc]
add eax, dword [ebp - 0x3d8]
mov edx, eax
mov dword [ebp - 0x3d8], eax
mov eax, dword [ebp + ecx*4 - 0x44]
dec eax
mov dword [ebp - 0x3e8], edx
cmp edi, eax
jne 0x1003d796
mov ecx, dword [esi + 0x18]
mov edi, dword [ebp - 0x420]
sub edi, dword [esi + 0x38]
mov ecx, dword [ecx + 0x1a0]
lea eax, [ecx + edx]
add ecx, dword [ebp - 0x3d0]
mov dword [ebp - 0x404], eax
push dword [ebp - 0x404]
mov eax, dword [esi + 4]
add edi, eax
add eax, dword [esi + 0x38]
mov esi, dword [ebp - 0x430]
push edi
push ecx
push eax
mov eax, dword [ebp - 0x414]
shl eax, 4
add eax, 0x9c
add eax, esi
push eax
call dword [ebp - 0x418]
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp - 0x414]
mov edx, dword [ebp - 0x3e8]
mov edi, dword [ebp - 0x3dc]
mov eax, dword [eax + 0x1b4]
add eax, edx
inc ecx
mov dword [ebp - 0x3d0], eax
mov dword [ebp - 0x414], ecx
mov eax, dword [esi + 0x34]
inc edi
mov dword [ebp - 0x3dc], edi
mov dword [ebp - 0x3d4], edx
cmp ecx, eax
jl 0x1003cd70
test eax, eax
mov edi, dword [esi + 0x18]
je 0x1003d7b9
xor ecx, ecx
jmp 0x1003d7bf
mov ecx, dword [edi + 0x1ac]
mov edx, dword [esi + 0x3c]
mov eax, dword [esi + 0x1c]
sub edx, ecx
add edx, dword [ebp - 0x3d8]
mov dword [ebp - 0x3d0], edx
cmp dword [eax + 0x10], 0
je 0x1003d80b
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
je 0x1003d80b
mov eax, dword [edi + 0x190]
mov ecx, dword [ebp - 0x420]
cmp ecx, eax
cmovle ecx, eax
mov eax, dword [edi + 0x198]
cmp edx, eax
mov dword [ebp - 0x410], ecx
cmovle edx, eax
mov dword [ebp - 0x3d0], edx
lea eax, [ebp - 0x3d0]
mov ecx, esi
push eax
lea eax, [ebp - 0x410]
push eax
call fcn.1003b510
mov ecx, dword [esi + 8]
mov eax, dword [ebp - 0x3d0]
mov edx, dword [ebp - 0x410]
mov dword [ebp - 0x408], edx
lea ecx, [eax + ecx*2]
mov eax, dword [esi + 4]
mov dword [esi + 0x68], ecx
lea edx, [edx + eax*2]
mov eax, dword [esi + 0x30]
mov dword [esi + 0x64], edx
mov eax, dword [eax]
add eax, eax
cmp dword [esi + 0x34], 0
movups xmm0, xmmword [esi + eax*8 + 0x9c]
movups xmmword [esi + 0x8c], xmm0
je 0x1003d94a
mov edi, dword [esi + 0x18]
cmp byte [edi + 0x144], 0
jne 0x1003d94a
mov edi, dword [edi + 0x1bc]
mov eax, edi
sub eax, dword [esi + 0x38]
sub eax, dword [esi + 4]
sub eax, dword [ebp - 0x3e4]
mov ecx, dword [ebp - 0x578]
add eax, edx
mov dword [ebp - 0x3f0], eax
mov eax, dword [esi + 0x78]
add eax, dword [esi + 0x70]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x3d4], eax
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [ebp - 0x3d4]
sar eax, 1
sub edx, eax
mov eax, dword [ebp - 0x57c]
sub edx, edi
mov dword [ebp - 0x3d4], edx
add ecx, edx
mov edx, dword [ebp - 0x3f0]
add eax, edx
mov edi, dword [ebp - 0x3d4]
push ecx
push eax
push edi
push edx
lea eax, [esi + 0x41c]
push eax
call dword [ebp - 0x418]
mov eax, dword [esi + 0x18]
mov edx, dword [ebp - 0x570]
add edx, edi
push edx
mov ecx, dword [eax + 0x1b8]
add ecx, dword [esi + 0x424]
mov eax, dword [ebp - 0x574]
add eax, ecx
push eax
push edi
push ecx
lea edi, [esi + 0x42c]
push edi
call dword [ebp - 0x418]
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x44]
call eax
test al, al
je 0x1003d94a
mov eax, dword [0x100b1038]
neg eax
push 0
push eax
lea eax, [esi + 0x41c]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [0x100b1038]
push 0
neg eax
push eax
push edi
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esi + 0x360]
mov edi, dword [esi + 0x35c]
mov dword [ebp - 0x3f0], eax
cmp edi, eax
je 0x1003d985
mov esi, eax
mov ecx, edi
call fcn.10026a80
add edi, 0x90
cmp edi, esi
jne 0x1003d962
mov esi, dword [ebp - 0x430]
mov eax, dword [esi + 0x35c]
mov dword [esi + 0x360], eax
mov edx, dword [esi + 0x18]
mov edi, dword [esi + 0x64]
sub edi, dword [esi + 0x38]
mov ecx, dword [edx + 0x1a0]
sub edi, ecx
mov eax, dword [edx + 0x37c]
add eax, edi
mov dword [ebp - 0x428], edi
mov edi, dword [esi + 0x3c]
add edi, dword [edx + 0x380]
add edi, ecx
mov dword [ebp - 0x420], eax
mov ecx, dword [ebp - 0x5a0]
mov eax, dword [ebp - 0x59c]
mov dword [ebp - 0x3d8], edi
mov dword [ebp - 0x434], ecx
mov dword [ebp - 0x3f8], eax
cmp ecx, eax
je 0x1003f63e
nop dword [eax + eax]
xorps xmm0, xmm0
movups xmmword [ebp - 0x21c], xmm0
movups xmmword [ebp - 0x20c], xmm0
movups xmmword [ebp - 0x1fc], xmm0
movups xmmword [ebp - 0x1ec], xmm0
movups xmmword [ebp - 0x1dc], xmm0
movups xmmword [ebp - 0x1cc], xmm0
movups xmmword [ebp - 0x1bc], xmm0
movups xmmword [ebp - 0x1ac], xmm0
movups xmmword [ebp - 0x19c], xmm0
lea eax, [ebp - 0x18c]
mov byte [ebp - 4], 0x11
push eax
call fcn.10029a80
push 0
lea eax, [ebp - 0x5a8]
mov byte [ebp - 4], 0x12
push eax
mov eax, dword [ebp - 0x440]
push eax
mov dword [ebp - 0x5a8], 0
mov dword [ebp - 0x5a4], 0
push dword [eax + 0x40]
mov eax, dword [ebp - 0x434]
sub esp, 0x18
mov dword [ebp - 0x56c], 0
add eax, 0x18
mov dword [ebp - 0x568], 0
mov ecx, esp
mov dword [ebp - 0x564], 0
mov dword [ebp - 0x560], 0
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
push 0
lea eax, [ebp - 0x56c]
push eax
mov eax, dword [ebp - 0x440]
push eax
push dword [eax + 0x44]
mov eax, dword [ebp - 0x434]
sub esp, 0x18
add eax, 0x30
mov ecx, esp
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov ecx, dword [ebp - 0x178]
lea eax, [ebp - 0x564]
push 0
push eax
mov eax, dword [ebp - 0x440]
lea edx, [ebp - 0x18c]
push eax
mov dword [ebp - 0x5ac], ecx
xorps xmm0, xmm0
push dword [eax + 0x48]
sub esp, 0x18
cmp ecx, 7
mov ecx, dword [ebp - 0x18c]
mov eax, esp
cmova edx, ecx
mov dword [ebp - 0x4c0], ecx
mov ecx, dword [ebp - 0x17c]
mov dword [ebp - 0x3f0], eax
mov dword [ebp - 0x404], edx
mov dword [ebp - 0x3d0], ecx
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
cmp ecx, 0x7ffffffe
ja 0x1003f9e4
mov dword [eax + 0x14], 7
cmp ecx, 7
ja 0x1003db59
mov dword [eax + 0x10], ecx
movups xmm0, xmmword [edx]
movups xmmword [eax], xmm0
jmp 0x1003dbc0
or ecx, 7
cmp ecx, 0x7ffffffe
jbe 0x1003db6b
mov ecx, SysReAllocString
jmp 0x1003db76
cmp ecx, 0xa
mov edx, 0xa
cmovb ecx, edx
mov dword [ebp - 0x3e4], ecx
lea ecx, [ebp - 0x3e4]
push ecx
push eax
call fcn.10005f90
mov edx, dword [ebp - 0x3f0]
mov ecx, dword [ebp - 0x3d0]
mov dword [edx + 0x10], ecx
mov ecx, dword [ebp - 0x3e4]
mov dword [edx + 0x14], ecx
mov ecx, dword [ebp - 0x3d0]
mov dword [edx], eax
lea ecx, [ecx*2 + 2]
push ecx
push dword [ebp - 0x404]
push eax
call fcn.10060530
add esp, 0x14
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov ecx, dword [ebp - 0x560]
cmp dword [ebp - 0x568], ecx
mov edx, dword [ebp - 0x5a4]
cmovg ecx, dword [ebp - 0x568]
cmp edx, ecx
cmovg ecx, edx
add edi, ecx
mov ecx, dword [ebp - 0x420]
add ecx, dword [ebp - 0x5a8]
mov eax, edi
push edi
push ecx
sub eax, edx
mov dword [ebp - 0x3d8], edi
push eax
push dword [ebp - 0x420]
lea eax, [ebp - 0x21c]
push eax
call dword [ebp - 0x418]
mov edx, dword [ebp - 0x434]
xor edi, edi
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp - 0x56c]
cmp dword [edx + 0x40], edi
mov edx, dword [ebp - 0x3d8]
cmovne edi, dword [eax + 0x384]
mov eax, edx
add edi, dword [ebp - 0x5a8]
add edi, dword [ebp - 0x420]
sub eax, dword [ebp - 0x568]
add ecx, edi
push edx
push ecx
push eax
push edi
lea eax, [ebp - 0x20c]
push eax
call dword [ebp - 0x418]
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp - 0x3d0]
mov edx, dword [ebp - 0x3d8]
neg ecx
push edx
sbb ecx, ecx
and ecx, dword [eax + 0x384]
mov eax, edx
add ecx, dword [ebp - 0x56c]
sub eax, dword [ebp - 0x560]
add edi, ecx
mov ecx, dword [ebp - 0x564]
add ecx, edi
push ecx
push eax
push edi
lea eax, [ebp - 0x1fc]
push eax
call dword [ebp - 0x418]
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x37c]
add eax, dword [ebp - 0x564]
add edi, eax
cmp dword [ebp - 0x408], edi
cmovg edi, dword [ebp - 0x408]
mov eax, edi
mov edi, dword [ebp - 0x434]
mov dword [ebp - 0x408], eax
add edi, 0x90
lea eax, [ebp - 0x5c4]
mov ecx, edi
push eax
call fcn.10029d90
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 0x13
push eax
mov ecx, edi
call fcn.10029f10
lea eax, [ebp - 0x5b8]
mov byte [ebp - 4], 0x14
push eax
mov ecx, edi
call fcn.1002a0c0
mov edi, dword [ebp - 0x440]
lea eax, [ebp - 0x4a4]
mov ecx, dword [ebp - 0x434]
push edi
mov byte [ebp - 4], 0x15
push dword [esi + 0x418]
lea ecx, [ecx + 0x138]
push eax
call fcn.1002a700
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x5c0]
mov edx, dword [ebp - 0x5c4]
cmp edx, eax
mov dword [ebp - 0x3e8], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x3e0], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x404], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x3e4], edx
mov dword [ebp - 0x3d4], eax
jne 0x1003dd86
test eax, eax
jne 0x1003dd86
mov eax, dword [ebp - 0x5b8]
cmp eax, dword [ebp - 0x5b4]
jne 0x1003dd86
mov eax, dword [ebp - 0x4a4]
cmp eax, dword [ebp - 0x4a0]
je 0x1003e715
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x3dc], ecx
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x52c], eax
mov dword [ebp - 0x42c], eax
mov dword [ebp - 0x528], eax
mov dword [ebp - 0x410], eax
mov dword [ebp - 0x524], eax
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x520], eax
mov dword [ebp - 0x40c], eax
mov dword [ebp - 0x51c], eax
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x518], eax
mov byte [ebp - 4], 0x18
mov dword [ebp - 0x54c], eax
mov dword [ebp - 0x548], eax
mov dword [ebp - 0x554], eax
mov dword [ebp - 0x550], eax
cmp edx, dword [ebp - 0x3e8]
je 0x1003df38
push edx
lea ecx, [ebp - 0xfc]
call fcn.10007d40
push 0
lea eax, [ebp - 0x58c]
mov byte [ebp - 4], 0x19
push eax
push edi
push dword [edi + 0x4c]
lea eax, [ebp - 0xfc]
mov dword [ebp - 0x58c], 0
sub esp, 0x18
mov dword [ebp - 0x588], 0
mov ecx, esp
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov edx, dword [ebp - 0x42c]
cmp edx, dword [ebp - 0x410]
je 0x1003de79
mov eax, dword [ebp - 0x58c]
mov ecx, dword [ebp - 0x588]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
mov dword [ebp - 0x42c], edx
mov dword [ebp - 0x528], edx
jmp 0x1003dea4
lea eax, [ebp - 0x58c]
push eax
push edx
lea ecx, [ebp - 0x52c]
call fcn.100404c0
mov eax, dword [ebp - 0x524]
mov dword [ebp - 0x410], eax
mov eax, dword [ebp - 0x528]
mov dword [ebp - 0x42c], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [eax + 0x398]
mov eax, dword [ebp - 0x588]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x3dc]
cmp ecx, eax
mov byte [ebp - 4], 0x18
cmovle ecx, eax
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0x3dc], ecx
cmp eax, 7
jbe 0x1003df11
mov edx, dword [ebp - 0xfc]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003df01
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
mov ecx, dword [ebp - 0x3dc]
add esp, 8
mov edx, dword [ebp - 0x3e4]
add edx, 0x18
mov dword [ebp - 0x3e4], edx
cmp edx, dword [ebp - 0x3e8]
jne 0x1003de00
mov eax, dword [ebp - 0x52c]
mov dword [ebp - 0x438], eax
mov edx, dword [ebp - 0x3d4]
test edx, edx
je 0x1003e037
push 0
lea eax, [ebp - 0x54c]
xorps xmm0, xmm0
push eax
push edi
push dword [edi + 0x50]
lea ecx, [ebp - 0x34]
sub esp, 0x18
cmp dword [ebp - 0x3e0], 7
mov eax, esp
cmova ecx, dword [ebp - 0x404]
mov dword [ebp - 0x3f0], eax
mov dword [ebp - 0x3e8], ecx
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
cmp edx, 0x7ffffffe
ja 0x1003f9e4
mov dword [eax + 0x14], 7
cmp edx, 7
ja 0x1003dfac
mov dword [eax + 0x10], edx
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
jmp 0x1003e015
mov ecx, edx
or ecx, 7
cmp ecx, 0x7ffffffe
jbe 0x1003dfc0
mov ecx, SysReAllocString
jmp 0x1003dfcb
cmp ecx, 0xa
mov edx, 0xa
cmovb ecx, edx
mov dword [ebp - 0x3e4], ecx
lea ecx, [ebp - 0x3e4]
push ecx
push eax
call fcn.10005f90
mov edx, dword [ebp - 0x3f0]
mov ecx, dword [ebp - 0x3d4]
mov dword [edx + 0x10], ecx
mov ecx, dword [ebp - 0x3e4]
mov dword [edx + 0x14], ecx
mov ecx, dword [ebp - 0x3d4]
mov dword [edx], eax
lea ecx, [ecx*2 + 2]
push ecx
push dword [ebp - 0x3e8]
push eax
call fcn.10060530
add esp, 0x14
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov eax, dword [ebp - 0x548]
cmp dword [ebp - 0x3dc], eax
cmovg eax, dword [ebp - 0x3dc]
mov ecx, eax
mov dword [ebp - 0x3dc], ecx
mov eax, dword [ebp - 0x5b8]
mov edx, dword [ebp - 0x5b4]
mov dword [ebp - 0x3e4], eax
mov dword [ebp - 0x3f0], edx
cmp eax, edx
je 0x1003e190
nop word [eax + eax]
push eax
lea ecx, [ebp - 0xfc]
call fcn.10007d40
push 0
lea eax, [ebp - 0x594]
mov byte [ebp - 4], 0x1a
push eax
push edi
push dword [edi + 0x54]
lea eax, [ebp - 0xfc]
mov dword [ebp - 0x594], 0
sub esp, 0x18
mov dword [ebp - 0x590], 0
mov ecx, esp
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov edx, dword [ebp - 0x40c]
cmp edx, dword [ebp - 0x454]
je 0x1003e0d9
mov eax, dword [ebp - 0x594]
mov ecx, dword [ebp - 0x590]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
mov dword [ebp - 0x40c], edx
mov dword [ebp - 0x51c], edx
jmp 0x1003e104
lea eax, [ebp - 0x594]
push eax
push edx
lea ecx, [ebp - 0x520]
call fcn.100404c0
mov eax, dword [ebp - 0x518]
mov dword [ebp - 0x454], eax
mov eax, dword [ebp - 0x51c]
mov dword [ebp - 0x40c], eax
mov eax, dword [ebp - 0x590]
cmp dword [ebp - 0x3dc], eax
cmovg eax, dword [ebp - 0x3dc]
mov ecx, eax
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0x3dc], ecx
cmp eax, 7
jbe 0x1003e169
mov edx, dword [ebp - 0xfc]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003e159
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
mov ecx, dword [ebp - 0x3dc]
add esp, 8
mov eax, dword [ebp - 0x3e4]
add eax, 0x18
mov dword [ebp - 0x3e4], eax
cmp eax, dword [ebp - 0x3f0]
jne 0x1003e060
mov eax, dword [ebp - 0x520]
mov dword [ebp - 0x424], eax
mov eax, dword [ebp - 0x4a4]
cmp eax, dword [ebp - 0x4a0]
je 0x1003e1d5
push 0
lea ecx, [ebp - 0x554]
push ecx
push edi
push dword [eax + 0x30]
add eax, 0x18
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov eax, dword [ebp - 0x550]
cmp dword [ebp - 0x3dc], eax
cmovg eax, dword [ebp - 0x3dc]
mov ecx, eax
mov edx, dword [esi + 0x18]
mov edi, dword [ebp - 0x420]
mov dword [ebp - 0x3d0], edx
mov dword [ebp - 0x3dc], edi
mov eax, dword [edx + 0x388]
sub eax, dword [edx + 0x398]
xor edx, edx
add eax, ecx
mov dword [ebp - 0x3e8], edx
add eax, dword [ebp - 0x3d8]
xor ecx, ecx
mov dword [ebp - 0x444], eax
xor eax, eax
mov dword [ebp - 0x514], edx
mov dword [ebp - 0x510], ecx
mov dword [ebp - 0x3fc], eax
mov dword [ebp - 0x50c], eax
mov dword [ebp - 0x448], eax
mov dword [ebp - 0x508], eax
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x504], eax
mov dword [ebp - 0x450], eax
mov dword [ebp - 0x500], eax
mov eax, dword [ebp - 0x438]
mov byte [ebp - 4], 0x1c
mov dword [ebp - 0x3e4], eax
cmp eax, dword [ebp - 0x42c]
je 0x1003e35a
nop dword [eax + eax]
mov esi, dword [ebp - 0x3d0]
mov edx, dword [eax]
mov dword [ebp - 0x3e8], edx
add edi, dword [esi + 0x398]
mov esi, dword [ebp - 0x444]
sub esi, dword [eax + 4]
mov eax, esi
mov dword [ebp - 0x3f0], esi
lea esi, [edi + edx]
mov dword [ebp - 0x5e0], edi
mov dword [ebp - 0x5d8], esi
mov esi, dword [ebp - 0x444]
mov dword [ebp - 0x5dc], eax
mov dword [ebp - 0x5d4], esi
cmp ecx, dword [ebp - 0x3fc]
je 0x1003e2d7
mov dword [ecx], edi
mov dword [ecx + 4], eax
lea eax, [edi + edx]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], esi
add ecx, 0x10
mov dword [ebp - 0x510], ecx
jmp 0x1003e302
lea eax, [ebp - 0x5e0]
push eax
push ecx
lea ecx, [ebp - 0x514]
call fcn.10040150
mov eax, dword [ebp - 0x50c]
mov edx, dword [ebp - 0x3e8]
mov ecx, dword [ebp - 0x510]
mov dword [ebp - 0x3fc], eax
mov esi, dword [ebp - 0x430]
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x3d0], eax
mov esi, dword [ebp - 0x3d0]
mov eax, dword [eax + 0x39c]
add eax, dword [esi + 0x398]
mov esi, dword [ebp - 0x430]
add eax, edx
add edi, eax
mov eax, dword [ebp - 0x3e4]
add eax, 8
mov dword [ebp - 0x3e4], eax
cmp eax, dword [ebp - 0x42c]
jne 0x1003e270
mov edx, dword [ebp - 0x514]
mov dword [ebp - 0x3dc], edi
mov dword [ebp - 0x3e8], edx
sub ecx, edx
sar ecx, 4
push ecx
push edx
lea ecx, [ebp - 0x1ec]
call fcn.1003ffa0
mov eax, dword [ebp - 0x438]
mov ecx, dword [esi + 0x18]
cmp eax, dword [ebp - 0x42c]
je 0x1003e391
mov eax, dword [ecx + 0x3a4]
sub eax, dword [ecx + 0x39c]
add edi, eax
mov dword [ebp - 0x3dc], edi
mov edi, dword [ecx + 0x398]
add edi, dword [ebp - 0x444]
mov ecx, dword [ebp - 0x54c]
mov eax, edi
mov edx, dword [ebp - 0x3dc]
add ecx, edx
sub eax, dword [ebp - 0x548]
push edi
push ecx
push eax
push edx
lea eax, [ebp - 0x1d4]
mov dword [ebp - 0x3d8], edi
push eax
call dword [ebp - 0x418]
mov edx, dword [ebp - 0x3d4]
mov eax, dword [esi + 0x18]
neg edx
mov ecx, dword [ebp - 0x3dc]
sbb edx, edx
and edx, dword [eax + 0x3a4]
add edx, dword [ebp - 0x54c]
mov eax, dword [ebp - 0x424]
add ecx, edx
mov dword [ebp - 0x3dc], ecx
mov dword [ebp - 0x3e4], eax
cmp eax, dword [ebp - 0x40c]
je 0x1003e4de
mov edx, dword [ebp - 0x41c]
nop
mov esi, dword [eax]
mov dword [ebp - 0x3d4], esi
mov esi, edi
sub esi, dword [eax + 4]
mov eax, dword [ebp - 0x3d4]
add eax, ecx
mov dword [ebp - 0x5f0], ecx
mov dword [ebp - 0x5ec], esi
mov dword [ebp - 0x5e8], eax
mov dword [ebp - 0x5e4], edi
cmp edx, dword [ebp - 0x450]
je 0x1003e45b
mov dword [edx], ecx
mov dword [edx + 4], esi
mov dword [edx + 8], eax
mov dword [edx + 0xc], edi
add edx, 0x10
mov dword [ebp - 0x504], edx
jmp 0x1003e492
lea eax, [ebp - 0x5f0]
push eax
push edx
lea ecx, [ebp - 0x508]
call fcn.10040150
mov eax, dword [ebp - 0x3d4]
mov edx, dword [ebp - 0x504]
mov ecx, dword [ebp - 0x3dc]
mov dword [ebp - 0x3d4], eax
mov eax, dword [ebp - 0x500]
mov dword [ebp - 0x450], eax
mov esi, dword [ebp - 0x430]
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x3a0]
add eax, dword [ebp - 0x3d4]
add ecx, eax
mov eax, dword [ebp - 0x3e4]
add eax, 8
mov dword [ebp - 0x3dc], ecx
mov dword [ebp - 0x3e4], eax
cmp eax, dword [ebp - 0x40c]
jne 0x1003e410
mov ecx, dword [ebp - 0x508]
mov dword [ebp - 0x41c], edx
mov dword [ebp - 0x448], ecx
jmp 0x1003e4e4
mov ecx, dword [ebp - 0x448]
mov eax, dword [ebp - 0x41c]
sub eax, ecx
sar eax, 4
push eax
push ecx
lea ecx, [ebp - 0x1e0]
call fcn.1003ffa0
mov eax, dword [ebp - 0x424]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebp - 0x3dc]
cmp eax, dword [ebp - 0x40c]
je 0x1003e527
mov eax, dword [ecx + 0x3a4]
sub eax, dword [ecx + 0x3a0]
add edx, eax
mov dword [ebp - 0x3dc], edx
mov ecx, dword [ebp - 0x554]
mov eax, edi
sub eax, dword [ebp - 0x550]
add ecx, edx
push edi
mov edi, dword [ebp - 0x3dc]
push ecx
push eax
push edi
lea eax, [ebp - 0x1c4]
push eax
call dword [ebp - 0x418]
mov ecx, dword [esi + 0x18]
xor edx, edx
mov eax, dword [ebp - 0x4a4]
cmp eax, dword [ebp - 0x4a0]
cmove edx, dword [ecx + 0x3a4]
mov eax, dword [ecx + 0x37c]
sub eax, edx
mov edx, dword [ebp - 0x448]
add eax, dword [ebp - 0x554]
add edi, eax
cmp dword [ebp - 0x408], edi
cmovg edi, dword [ebp - 0x408]
mov byte [ebp - 4], 0x1b
mov eax, edi
mov dword [ebp - 0x408], eax
test edx, edx
je 0x1003e5ea
mov ecx, dword [ebp - 0x450]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff0
cmp ecx, 0x1000
jb 0x1003e5c2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x508], 0
mov dword [ebp - 0x504], 0
mov dword [ebp - 0x500], 0
mov edx, dword [ebp - 0x3e8]
mov byte [ebp - 4], 0x18
test edx, edx
je 0x1003e649
mov ecx, dword [ebp - 0x3fc]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff0
cmp ecx, 0x1000
jb 0x1003e621
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x514], 0
mov dword [ebp - 0x510], 0
mov dword [ebp - 0x50c], 0
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x424]
test edx, edx
je 0x1003e6af
mov eax, dword [ebp - 0x454]
sub eax, edx
sar eax, 3
lea ecx, [eax*8]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003e687
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x520], 0
mov dword [ebp - 0x51c], 0
mov dword [ebp - 0x518], 0
mov edx, dword [ebp - 0x438]
mov byte [ebp - 4], 0x16
test edx, edx
je 0x1003e715
mov eax, dword [ebp - 0x410]
sub eax, edx
sar eax, 3
lea ecx, [eax*8]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003e6ed
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x52c], 0
mov dword [ebp - 0x528], 0
mov dword [ebp - 0x524], 0
mov ecx, dword [ebp - 0x434]
lea eax, [ebp - 0x5d0]
push eax
mov dword [ebp - 0x3d0], 0
lea ecx, [ecx + 0x90]
call fcn.1002a490
xor eax, eax
mov dword [ebp - 0x414], eax
mov dword [ebp - 0x478], eax
mov dword [ebp - 0x40c], eax
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x450], eax
mov dword [ebp - 0x470], eax
mov ecx, dword [ebp - 0x5d0]
mov eax, dword [ebp - 0x5cc]
mov dword [ebp - 0x3e8], ecx
mov dword [ebp - 0x44c], eax
cmp ecx, eax
je 0x1003e9c4
nop dword [eax]
xor edi, edi
mov dword [ebp - 0x4f0], 0
mov dword [ebp - 0x4ec], edi
mov dword [ebp - 0x4e8], edi
mov byte [ebp - 4], 0x1f
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov byte [ebp - 0x3f1], 1
mov dword [ebp - 0x3e4], eax
mov dword [ebp - 0x3f0], ecx
cmp eax, ecx
je 0x1003e8e3
nop dword [eax]
push eax
lea ecx, [ebp - 0xfc]
call fcn.10007d40
cmp byte [ebp - 0x3f1], 0
mov eax, dword [ebp - 0x440]
mov byte [ebp - 4], 0x20
mov dword [ebp - 0x55c], 0
mov dword [ebp - 0x558], 0
je 0x1003e7f8
mov ecx, dword [eax + 0x58]
jmp 0x1003e7fb
mov ecx, dword [eax + 0x5c]
push 0
lea edx, [ebp - 0x55c]
push edx
push eax
push ecx
sub esp, 0x18
lea eax, [ebp - 0xfc]
mov ecx, esp
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
cmp edi, dword [ebp - 0x4e8]
je 0x1003e842
mov eax, dword [ebp - 0x55c]
mov ecx, dword [ebp - 0x558]
mov dword [edi], eax
mov dword [edi + 4], ecx
add edi, 8
mov dword [ebp - 0x4ec], edi
jmp 0x1003e85b
lea eax, [ebp - 0x55c]
push eax
push edi
lea ecx, [ebp - 0x4f0]
call fcn.100404c0
mov edi, dword [ebp - 0x4ec]
cmp byte [ebp - 0x3f1], 0
je 0x1003e884
mov eax, dword [ebp - 0x55c]
cmp dword [ebp - 0x3d0], eax
mov byte [ebp - 0x3f1], 0
cmovg eax, dword [ebp - 0x3d0]
mov dword [ebp - 0x3d0], eax
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0xe8]
cmp ecx, 7
jbe 0x1003e8c8
mov edx, dword [ebp - 0xfc]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003e8be
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov eax, dword [ebp - 0x3e4]
add eax, 0x18
mov dword [ebp - 0x3e4], eax
cmp eax, dword [ebp - 0x3f0]
jne 0x1003e7c0
mov edi, dword [ebp - 0x40c]
lea eax, [ebp - 0x4f0]
push eax
cmp edi, dword [ebp - 0x450]
je 0x1003e913
mov edx, edi
call fcn.10040da0
add esp, 4
add edi, 0xc
mov dword [ebp - 0x40c], edi
mov dword [ebp - 0x474], edi
jmp 0x1003e937
push edi
lea ecx, [ebp - 0x478]
call fcn.100402b0
mov eax, dword [ebp - 0x470]
mov dword [ebp - 0x450], eax
mov eax, dword [ebp - 0x474]
mov dword [ebp - 0x40c], eax
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x4f0]
test ecx, ecx
je 0x1003e99d
mov eax, dword [ebp - 0x4e8]
sub eax, ecx
sar eax, 3
lea edx, [eax*8]
mov eax, ecx
cmp edx, 0x1000
jb 0x1003e975
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push edx
push ecx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x4f0], 0
mov dword [ebp - 0x4ec], 0
mov dword [ebp - 0x4e8], 0
mov ecx, dword [ebp - 0x3e8]
add ecx, 0xc
mov dword [ebp - 0x3e8], ecx
cmp ecx, dword [ebp - 0x44c]
jne 0x1003e780
mov eax, dword [ebp - 0x478]
mov dword [ebp - 0x414], eax
xor edi, edi
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x424], edi
mov dl, 1
mov dword [ebp - 0x490], ecx
mov dword [ebp - 0x48c], edi
mov dword [ebp - 0x44c], eax
mov dword [ebp - 0x488], eax
mov eax, dword [ebp - 0x414]
mov byte [ebp - 4], 0x21
mov dword [ebp - 0x3dc], eax
cmp eax, dword [ebp - 0x40c]
je 0x1003ee8f
mov ecx, dword [ebp - 0x3d0]
add ecx, dword [ebp - 0x420]
mov dword [ebp - 0x3d0], ecx
mov ecx, dword [esi + 0x18]
test dl, dl
je 0x1003ea27
mov ecx, dword [ecx + 0x388]
jmp 0x1003ea2d
mov ecx, dword [ecx + 0x3a8]
mov edx, dword [eax]
mov eax, dword [ebp - 0x3d8]
mov dword [ebp - 0x3e4], ecx
mov byte [ebp - 0x3f2], 0
mov edi, dword [edx + 4]
mov ecx, edi
cmp edi, dword [edx + 0xc]
cmovle ecx, dword [edx + 0xc]
add ecx, dword [ebp - 0x3e4]
add eax, ecx
mov ecx, dword [ebp - 0x3d0]
sub ecx, dword [edx]
lea edx, [ebp - 0x164]
mov dword [ebp - 0x3d8], eax
sub eax, edi
mov edi, dword [ebp - 0x3d8]
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x3d0]
mov dword [ebp - 0x16c], eax
xor eax, eax
mov dword [ebp - 0x410], eax
mov dword [ebp - 0x468], eax
mov dword [ebp - 0x460], eax
lea eax, [ebp - 0x174]
sub edx, eax
mov dword [ebp - 0x174], ecx
mov dword [ebp - 0x3f0], edx
xor ecx, ecx
sar edx, 4
xor eax, eax
mov dword [ebp - 0x168], edi
mov dword [ebp - 0x464], ecx
mov dword [ebp - 0x3e8], edx
mov dword [ebp - 0x3e4], eax
test edx, edx
je 0x1003eb24
cmp edx, 0xfffffff
ja 0x1003f9f3
push edx
lea ecx, [ebp - 0x468]
call fcn.100276d0
push dword [ebp - 0x3f0]
lea eax, [ebp - 0x174]
push eax
mov eax, dword [ebp - 0x468]
push eax
mov dword [ebp - 0x410], eax
call fcn.10060530
mov ecx, dword [ebp - 0x3e8]
add esp, 0xc
shl ecx, 4
add ecx, dword [ebp - 0x410]
mov dword [ebp - 0x464], ecx
mov dword [ebp - 0x3e4], ecx
mov byte [ebp - 4], 0x22
mov eax, dword [esi + 0x18]
mov esi, edi
mov dword [ebp - 0x5f4], edi
mov edx, dword [eax + 0x3ac]
mov eax, dword [ebp - 0x3dc]
add edx, dword [ebp - 0x3d0]
mov dword [ebp - 0x448], edx
mov dword [ebp - 0x600], edx
mov eax, dword [eax]
sub esi, dword [eax + 0xc]
mov dword [ebp - 0x3e8], esi
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0x3e8]
add esi, edx
mov dword [ebp - 0x5fc], eax
mov eax, dword [ebp - 0x3e4]
mov dword [ebp - 0x3f0], esi
mov dword [ebp - 0x5f8], esi
mov esi, dword [ebp - 0x430]
cmp eax, dword [ebp - 0x460]
je 0x1003ebb5
mov esi, dword [ebp - 0x3e8]
add ecx, 0x10
mov dword [eax], edx
mov dword [eax + 4], esi
mov esi, dword [ebp - 0x3f0]
mov dword [eax + 8], esi
mov esi, dword [ebp - 0x430]
mov dword [eax + 0xc], edi
mov dword [ebp - 0x464], ecx
jmp 0x1003ebe0
lea ecx, [ebp - 0x600]
push ecx
push eax
lea ecx, [ebp - 0x468]
call fcn.10040150
mov eax, dword [ebp - 0x468]
mov ecx, dword [ebp - 0x464]
mov edx, dword [ebp - 0x448]
mov dword [ebp - 0x410], eax
mov eax, dword [ebp - 0x3dc]
mov dword [ebp - 0x41c], 2
mov eax, dword [eax]
mov dword [ebp - 0x3d4], eax
mov eax, dword [eax + 8]
mov dword [ebp - 0x444], eax
mov eax, dword [ebp - 0x3dc]
mov eax, dword [eax + 4]
sub eax, dword [ebp - 0x3d4]
sar eax, 3
cmp eax, 2
jbe 0x1003ed1f
mov esi, dword [ebp - 0x3d4]
nop dword [eax]
nop word [eax + eax]
mov eax, dword [ebp - 0x41c]
shl eax, 3
mov dword [ebp - 0x3e4], eax
mov edi, eax
mov dword [ebp - 0x15c], edx
mov eax, dword [eax + esi]
add eax, edx
mov esi, dword [edi + esi + 4]
mov edi, dword [ebp - 0x3d8]
add esi, edi
mov dword [ebp - 0x3f0], esi
mov dword [ebp - 0x158], edi
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], esi
cmp ecx, dword [ebp - 0x460]
je 0x1003ec94
mov dword [ecx], edx
mov dword [ecx + 4], edi
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x3f0]
mov dword [ecx + 0xc], eax
add ecx, 0x10
mov dword [ebp - 0x464], ecx
jmp 0x1003ecb3
lea eax, [ebp - 0x15c]
push eax
push ecx
lea ecx, [ebp - 0x468]
call fcn.10040150
mov ecx, dword [ebp - 0x464]
mov edx, dword [ebp - 0x448]
mov eax, dword [ebp - 0x3dc]
mov esi, dword [ebp - 0x3e4]
mov eax, dword [eax]
mov dword [ebp - 0x3d4], eax
add edi, dword [eax + esi + 4]
mov eax, dword [eax + esi]
mov esi, dword [ebp - 0x444]
cmp esi, eax
mov dword [ebp - 0x3d8], edi
cmovle esi, eax
mov eax, dword [ebp - 0x3dc]
inc dword [ebp - 0x41c]
mov dword [ebp - 0x444], esi
mov esi, dword [ebp - 0x3d4]
mov eax, dword [eax + 4]
sub eax, esi
sar eax, 3
cmp dword [ebp - 0x41c], eax
jb 0x1003ec30
mov edx, dword [ebp - 0x468]
mov esi, dword [ebp - 0x430]
mov dword [ebp - 0x410], edx
jmp 0x1003ed25
mov edx, dword [ebp - 0x410]
mov edi, dword [ebp - 0x424]
cmp edi, dword [ebp - 0x44c]
je 0x1003edb2
sub ecx, edx
mov dword [edi], 0
mov eax, ecx
mov dword [edi + 4], 0
sar eax, 4
mov dword [edi + 8], 0
mov dword [ebp - 0x3f0], ecx
mov dword [ebp - 0x3e4], eax
test eax, eax
je 0x1003eda7
cmp eax, 0xfffffff
ja 0x1003f9f3
push eax
mov ecx, edi
call fcn.100276d0
push dword [ebp - 0x3f0]
mov eax, dword [ebp - 0x410]
mov edi, dword [edi]
push eax
push edi
call fcn.10060530
mov eax, dword [ebp - 0x3e4]
add esp, 0xc
mov edx, dword [ebp - 0x410]
shl eax, 4
add eax, edi
mov edi, dword [ebp - 0x424]
mov dword [edi + 4], eax
add edi, 0xc
mov dword [ebp - 0x48c], edi
jmp 0x1003eddd
lea eax, [ebp - 0x468]
push eax
push edi
lea ecx, [ebp - 0x490]
call fcn.10040b90
mov eax, dword [ebp - 0x488]
mov edi, dword [ebp - 0x48c]
mov edx, dword [ebp - 0x468]
mov dword [ebp - 0x44c], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp - 0x448]
mov dword [ebp - 0x424], edi
mov eax, dword [eax + 0x37c]
add eax, dword [ebp - 0x444]
add ecx, eax
cmp dword [ebp - 0x408], ecx
cmovg ecx, dword [ebp - 0x408]
mov byte [ebp - 4], 0x21
mov eax, ecx
mov dword [ebp - 0x408], eax
test edx, edx
je 0x1003ee68
mov ecx, dword [ebp - 0x460]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff0
cmp ecx, 0x1000
jb 0x1003ee40
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x468], 0
mov dword [ebp - 0x464], 0
mov dword [ebp - 0x460], 0
mov eax, dword [ebp - 0x3dc]
mov dl, byte [ebp - 0x3f2]
add eax, 0xc
mov dword [ebp - 0x3dc], eax
cmp eax, dword [ebp - 0x40c]
jne 0x1003ea18
mov ecx, dword [ebp - 0x490]
sub edi, ecx
mov eax, 0x2aaaaaab
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ecx
lea ecx, [ebp - 0x1b4]
call fcn.1003fd50
mov ecx, dword [ebp - 0x4a0]
mov eax, 0x4ec4ec4f
sub ecx, dword [ebp - 0x4a4]
mov edi, dword [ebp - 0x3d8]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jbe 0x1003f465
mov eax, dword [esi + 0x18]
xorps xmm0, xmm0
push 0
add edi, dword [eax + 0x388]
lea eax, [ebp - 0x45c]
push eax
mov eax, dword [ebp - 0x440]
push eax
push dword [eax + 0x60]
sub esp, 0x18
mov ecx, esp
push 0xe
movups xmmword [ecx], xmm0
push str.More_Languages
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.10006000
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov ecx, dword [ebp - 0x458]
mov eax, dword [ebp - 0x45c]
add ecx, edi
mov edx, dword [ebp - 0x420]
add eax, edx
push ecx
push eax
push edi
push edx
lea eax, [ebp - 0x1a8]
push eax
call dword [ebp - 0x418]
mov eax, dword [esi + 0x18]
add edi, dword [ebp - 0x458]
mov dword [ebp - 0x3d8], edi
mov dword [ebp - 0x424], 0
mov eax, dword [eax + 0x37c]
add eax, dword [ebp - 0x420]
add eax, dword [ebp - 0x45c]
cmp dword [ebp - 0x408], eax
cmovg eax, dword [ebp - 0x408]
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x408], ecx
mov dword [ebp - 0x3d4], eax
mov dword [ebp - 0x538], eax
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x534], eax
mov dword [ebp - 0x448], eax
mov dword [ebp - 0x530], eax
mov byte [ebp - 4], 0x23
mov eax, 0x4ec4ec4f
mov ecx, dword [ebp - 0x4a0]
sub ecx, dword [ebp - 0x4a4]
imul ecx
mov dword [ebp - 0x3d0], 1
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jbe 0x1003f175
mov edi, dword [ebp - 0x440]
mov eax, 0x34
mov dword [ebp - 0x3d4], eax
nop dword [eax]
nop dword [eax + eax]
add eax, dword [ebp - 0x4a4]
lea ecx, [ebp - 0x498]
push 0
push ecx
push edi
push dword [edi + 0x58]
mov dword [ebp - 0x498], 0
sub esp, 0x18
mov dword [ebp - 0x494], 0
mov ecx, esp
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov eax, dword [ebp - 0x498]
cmp dword [ebp - 0x424], eax
mov edx, dword [ebp - 0x3d4]
cmovg eax, dword [ebp - 0x424]
push 0
mov dword [ebp - 0x424], eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x4a4]
push edi
push dword [edx + eax + 0x30]
add edx, 0x18
sub esp, 0x18
add eax, edx
mov ecx, esp
push eax
call fcn.10007d40
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x48]
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x498]
mov edx, dword [ebp - 0x494]
mov dword [ebp - 0x3f0], eax
mov dword [ebp - 0x13c], eax
mov eax, esi
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x438]
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x140], edx
mov dword [ebp - 0x3e4], esi
cmp eax, dword [ebp - 0x448]
je 0x1003f0f6
mov dword [eax], ecx
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x3f0]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x3e4]
mov dword [eax + 0xc], ecx
add eax, 0x10
mov dword [ebp - 0x534], eax
jmp 0x1003f11b
lea ecx, [ebp - 0x144]
push ecx
push eax
lea ecx, [ebp - 0x538]
call fcn.10040150
mov eax, dword [ebp - 0x530]
mov dword [ebp - 0x448], eax
mov eax, dword [ebp - 0x534]
mov ecx, dword [ebp - 0x4a0]
sub ecx, dword [ebp - 0x4a4]
add dword [ebp - 0x3d4], 0x34
inc dword [ebp - 0x3d0]
mov esi, dword [ebp - 0x430]
mov dword [ebp - 0x438], eax
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x3d0], eax
mov eax, dword [ebp - 0x3d4]
jb 0x1003f000
mov eax, dword [ebp - 0x538]
mov edi, dword [ebp - 0x3d8]
mov dword [ebp - 0x3d4], eax
xor edx, edx
mov byte [ebp - 0x3f2], 1
xor ecx, ecx
mov dword [ebp - 0x3e4], edx
xor eax, eax
mov dword [ebp - 0x544], edx
mov dword [ebp - 0x3d0], ecx
mov dword [ebp - 0x540], ecx
mov dword [ebp - 0x444], eax
mov dword [ebp - 0x53c], eax
mov byte [ebp - 4], 0x24
mov eax, dword [ebp - 0x3d4]
cmp eax, dword [ebp - 0x438]
je 0x1003f395
mov eax, dword [ebp - 0x424]
add eax, dword [ebp - 0x420]
mov edx, dword [ebp - 0x3d4]
add edx, 8
mov dword [ebp - 0x3e8], eax
mov dword [ebp - 0x42c], edx
nop dword [eax]
cmp byte [ebp - 0x3f2], 0
mov eax, dword [esi + 0x18]
je 0x1003f1f4
mov eax, dword [eax + 0x3b0]
jmp 0x1003f1fa
mov eax, dword [eax + 0x3a8]
mov edx, dword [edx + 4]
mov dword [ebp - 0x3e4], eax
mov eax, dword [ebp - 0x42c]
mov byte [ebp - 0x3f2], 0
mov ecx, dword [eax - 4]
cmp ecx, edx
mov eax, ecx
cmovle eax, edx
add eax, dword [ebp - 0x3e4]
add edi, eax
mov eax, edi
mov dword [ebp - 0xf8], edi
sub eax, ecx
mov dword [ebp - 0xe8], edi
mov ecx, dword [ebp - 0x42c]
mov dword [ebp - 0x3fc], eax
mov eax, dword [ebp - 0x420]
sub eax, dword [ecx - 8]
add eax, dword [ebp - 0x424]
mov ecx, dword [esi + 0x18]
mov esi, dword [ebp - 0x3e8]
mov dword [ebp - 0x3f0], eax
mov eax, dword [ebp - 0x42c]
mov ecx, dword [ecx + 0x3ac]
add ecx, dword [ebp - 0x420]
add ecx, dword [ebp - 0x424]
mov eax, dword [eax]
add eax, ecx
mov dword [ebp - 0x46c], ecx
mov dword [ebp - 0x44c], eax
mov eax, edi
sub eax, edx
mov dword [ebp - 0xf4], ecx
mov edx, dword [ebp - 0x3f0]
mov dword [ebp - 0x3e4], eax
mov ecx, eax
mov eax, dword [ebp - 0x3fc]
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0x44c]
mov dword [ebp - 0xec], ecx
mov ecx, dword [ebp - 0x3d0]
mov dword [ebp - 0x104], edx
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], esi
cmp ecx, dword [ebp - 0x444]
je 0x1003f30a
mov dword [ecx], edx
mov edx, dword [ebp - 0x46c]
mov dword [ecx + 4], eax
mov eax, esi
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edi
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0x3e4]
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 0x44c]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edi
add ecx, 0x20
mov dword [ebp - 0x540], ecx
jmp 0x1003f335
lea eax, [ebp - 0x104]
push eax
push ecx
lea ecx, [ebp - 0x544]
call fcn.10040a20
mov eax, dword [ebp - 0x53c]
mov ecx, dword [ebp - 0x540]
mov edx, dword [ebp - 0x46c]
mov dword [ebp - 0x444], eax
mov esi, dword [ebp - 0x430]
mov dword [ebp - 0x3d0], ecx
mov eax, dword [esi + 0x18]
mov esi, dword [ebp - 0x42c]
mov eax, dword [eax + 0x37c]
add eax, dword [esi]
add edx, eax
cmp dword [ebp - 0x408], edx
cmovg edx, dword [ebp - 0x408]
mov eax, edx
mov edx, esi
mov esi, dword [ebp - 0x430]
add edx, 0x10
mov dword [ebp - 0x408], eax
mov dword [ebp - 0x42c], edx
lea eax, [edx - 8]
cmp eax, dword [ebp - 0x438]
jne 0x1003f1e0
mov edx, dword [ebp - 0x544]
mov dword [ebp - 0x3e4], edx
sub ecx, edx
sar ecx, 5
push ecx
push edx
lea ecx, [ebp - 0x198]
call fcn.1003fbf0
mov byte [ebp - 4], 0x23
mov edx, dword [ebp - 0x3e4]
test edx, edx
je 0x1003f406
mov ecx, dword [ebp - 0x444]
mov eax, edx
sub ecx, edx
and ecx, 0xffffffe0
cmp ecx, 0x1000
jb 0x1003f3de
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x544], 0
mov dword [ebp - 0x540], 0
mov dword [ebp - 0x53c], 0
mov byte [ebp - 4], 0x21
mov edx, dword [ebp - 0x3d4]
test edx, edx
je 0x1003f465
mov ecx, dword [ebp - 0x448]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff0
cmp ecx, 0x1000
jb 0x1003f43d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x538], 0
mov dword [ebp - 0x534], 0
mov dword [ebp - 0x530], 0
mov eax, dword [esi + 0x360]
lea ecx, [esi + 0x35c]
cmp eax, dword [ecx + 8]
je 0x1003f490
lea ecx, [ebp - 0x21c]
push ecx
mov ecx, eax
call fcn.10026ee0
add dword [esi + 0x360], 0x90
jmp 0x1003f49d
lea edx, [ebp - 0x21c]
push edx
push eax
call fcn.100407e0
mov eax, dword [esi + 0x18]
lea ecx, [ebp - 0x490]
add edi, dword [eax + 0x3b4]
mov dword [ebp - 0x3d8], edi
call fcn.10025d20
mov eax, dword [ebp - 0x414]
mov byte [ebp - 4], 0x1d
test eax, eax
je 0x1003f548
mov edx, dword [ebp - 0x40c]
push ecx
mov ecx, eax
call fcn.100400e0
mov ecx, dword [ebp - 0x450]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x414]
add esp, 4
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x414]
lea ecx, [eax + eax*2]
mov eax, edx
shl ecx, 2
cmp ecx, 0x1000
jb 0x1003f520
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x478], 0
mov dword [ebp - 0x474], 0
mov dword [ebp - 0x470], 0
lea ecx, [ebp - 0x5d0]
call fcn.10025850
lea ecx, [ebp - 0x4a4]
call fcn.100258d0
lea ecx, [ebp - 0x5b8]
call fcn.10011560
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x3e0]
cmp eax, 7
jbe 0x1003f5ad
mov edx, dword [ebp - 0x404]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003f5a3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
lea ecx, [ebp - 0x5c4]
call fcn.10011560
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x5ac]
cmp ecx, 7
jbe 0x1003f5fc
mov edx, dword [ebp - 0x4c0]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003f5f2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 8
call fcn.10026a80
mov ecx, dword [ebp - 0x434]
add ecx, 0x1b0
mov dword [ebp - 0x434], ecx
cmp ecx, dword [ebp - 0x3f8]
jne 0x1003d9e0
mov eax, dword [ebp - 0x59c]
mov edx, dword [esi + 0x18]
mov ecx, dword [ebp - 0x5a0]
mov dword [ebp - 0x3f8], eax
lea eax, [esi + 0x34c]
cmp ecx, dword [ebp - 0x3f8]
jne 0x1003f658
push eax
call dword [sym.imp.USER32.dll_SetRectEmpty]
jmp 0x1003f6c5
mov eax, dword [edx + 0x380]
sub eax, dword [edx + 0x3b4]
add eax, dword [edx + 0x1a0]
mov edi, dword [esi + 0x3c]
add eax, edi
add eax, dword [ebp - 0x3d8]
mov edx, dword [esi + 0x68]
cmp edx, eax
mov ecx, dword [esi + 0x18]
cmovle edx, eax
mov eax, dword [ebp - 0x408]
mov dword [esi + 0x68], edx
inc eax
mov ecx, dword [ecx + 0x1a0]
sub edx, ecx
sub edx, edi
inc edx
push edx
push eax
lea eax, [ecx - 1]
add eax, edi
push eax
push dword [ebp - 0x428]
lea eax, [esi + 0x34c]
push eax
call dword [ebp - 0x418]
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x1a0]
add eax, dword [esi + 0x38]
add eax, dword [ebp - 0x408]
mov dword [esi + 0x64], eax
push dword [esi + 0x68]
lea eax, [esi + 0x33c]
push dword [esi + 0x64]
push 0
push 0
push eax
call dword [ebp - 0x418]
lea eax, [esi + 0x33c]
push eax
lea edi, [esi + 0x32c]
push edi
call dword [sym.imp.USER32.dll_CopyRect]
mov eax, dword [esi + 8]
not eax
push eax
mov eax, dword [esi + 4]
not eax
push eax
push edi
call dword [sym.imp.USER32.dll_InflateRect]
mov eax, dword [esi + 0x18]
lea edi, [esi + 0x33c]
mov eax, dword [eax + 0x1a0]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
sub eax, dword [esi + 4]
sub ecx, dword [esi + 8]
push ecx
push eax
push edi
call dword [sym.imp.USER32.dll_InflateRect]
mov eax, dword [esi + 0x18]
test byte [eax + 0x1a0], 1
jne 0x1003f73f
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
call dword [sym.imp.USER32.dll_InflateRect]
mov edx, dword [ebp - 0x4fc]
test edx, edx
je 0x1003f79a
mov ecx, dword [ebp - 0x4f4]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x1003f772
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x4fc], 0
mov dword [ebp - 0x4f8], 0
mov dword [ebp - 0x4f4], 0
mov edx, dword [ebp - 0x4cc]
test edx, edx
je 0x1003f7f5
mov ecx, dword [ebp - 0x4c4]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x1003f7cd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x4cc], 0
mov dword [ebp - 0x4c8], 0
mov dword [ebp - 0x4c4], 0
mov edx, dword [ebp - 0x4d8]
test edx, edx
je 0x1003f850
mov ecx, dword [ebp - 0x4d0]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x1003f828
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x4d8], 0
mov dword [ebp - 0x4d4], 0
mov dword [ebp - 0x4d0], 0
mov edx, dword [ebp - 0x4e4]
test edx, edx
je 0x1003f8ab
mov ecx, dword [ebp - 0x4dc]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x1003f883
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9f8
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x4e4], 0
mov dword [ebp - 0x4e0], 0
mov dword [ebp - 0x4dc], 0
mov edx, dword [ebp - 0x4b0]
test edx, edx
je 0x1003f906
mov ecx, dword [ebp - 0x4a8]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x1003f8de
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9fd
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x4b0], 0
mov dword [ebp - 0x4ac], 0
mov dword [ebp - 0x4a8], 0
mov edx, dword [ebp - 0x484]
test edx, edx
je 0x1003f961
mov ecx, dword [ebp - 0x47c]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x1003f939
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9fd
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x484], 0
mov dword [ebp - 0x480], 0
mov dword [ebp - 0x47c], 0
mov edx, dword [ebp - 0x4bc]
test edx, edx
je 0x1003f9bc
mov ecx, dword [ebp - 0x4b4]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x1003f994
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003f9fd
push ecx
push edx
call fcn.1005a5aa
add esp, 8
mov dword [ebp - 0x4bc], 0
mov dword [ebp - 0x4b8], 0
mov dword [ebp - 0x4b4], 0
lea ecx, [ebp - 0x5a0]
call fcn.10025950
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1005a59c
mov esp, ebp
pop ebp
ret 8
call fcn.100060a0
call fcn.1000cb40
call fcn.10007df0
call fcn.10011d10
call fcn.1006a2cf
call fcn.1006a2cf
int3