Function at 0x4348c0
Capabilities:
Authenticate hmac
Check if file exists
Encode data using base64
Get common file path
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49df4c
mov eax, dword fs:[0]
push eax
sub esp, 0x540
mov eax, dword [0x4d7200]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x1b8], ebx
sub esp, 8
lea ecx, [ebx + 0x130]
call fcn.0041b0e0
sub esp, 8
lea ecx, [ebx + 0x168]
call fcn.0041b0e0
sub esp, 8
lea ecx, [ebx + 0x1a0]
call fcn.0041b0e0
sub esp, 8
lea ecx, [ebx + 0x5b0]
push 0x4c2c74
push 0xffffffffffffffb0
call fcn.0041a070
mov ecx, eax
call fcn.0041a580
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
movq qword [ebp - 0x20], xmm0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov byte [ebp - 0x18], 1
mov eax, dword [ebp + 8]
lea ecx, [ebx + 0x2a8]
push 3
mov dword [ebp - 4], 0
push dword [eax + 8]
push dword [ebx + 0x64]
call fcn.00416470
mov esi, eax
mov eax, dword [ebp - 0x20]
test esi, esi
jne 0x4349d4
test eax, eax
je 0x434990
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov dword [ebp - 0x20], edx
test eax, eax
jle 0x4349c6
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
cmp ecx, eax
jl 0x4349b3
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
jmp 0x4349e9
test eax, eax
je 0x4349e1
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x18], 1
test esi, esi
je 0x434a2a
test eax, eax
jne 0x434a0d
cmp word [esi], ax
je 0x434a08
nop word [eax + eax]
inc eax
cmp word [esi + eax*2], 0
jne 0x434a00
mov dword [ebp - 0x1c], eax
test eax, eax
jle 0x434a2a
push esi
mov byte [ebp - 0x18], 1
call fcn.0048ddfc
mov esi, dword [ebp - 0x20]
add esp, 4
mov dword [ebp - 0x1e0], eax
mov eax, dword [ebp - 0x1c]
jmp 0x434a38
mov byte [ebp - 0x18], 0
mov dword [ebp - 0x1e0], 0
mov byte [ebp - 0x18], 0
test eax, eax
jne 0x434a5b
test esi, esi
je 0x434a58
cmp word [esi], ax
je 0x434a58
nop dword [eax]
inc eax
cmp word [esi + eax*2], 0
jne 0x434a50
mov dword [ebp - 0x1c], eax
xor ecx, ecx
nop dword [eax]
inc ecx
cmp word [ecx*2 + str.SELECT__FROM_MSFT_Disk_WHERE_Number_], 0
jne 0x434a60
add eax, ecx
mov edx, 2
mov dword [ebp - 0x1dc], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, dword [ebp - 0x20]
mov ebx, eax
mov edi, str.SELECT__FROM_MSFT_Disk_WHERE_Number_
add esp, 4
mov ecx, ebx
mov esi, 0x53
sub edi, ebx
mov word [ecx], si
add ecx, 2
movzx eax, word [edi + ecx]
mov esi, eax
test ax, ax
jne 0x434aa1
cmp dword [ebp - 0x20], 0
je 0x434ad3
movzx eax, word [edx]
mov esi, eax
test ax, ax
je 0x434ad3
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x434ac2
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x434ae8
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x1dc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1b8]
mov dword [ebp - 0x20], ebx
mov byte [ebp - 0x18], 1
cmp byte [eax + 0x150], 0
lea esi, [eax + 0x138]
jne 0x434b1b
mov ecx, dword [esi]
test ecx, ecx
je 0x434b1b
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov edx, ebx
mov dword [esi], 0
mov ebx, dword [ebp - 0x1b8]
mov ecx, dword [ebx + 0x130]
call fcn.0041a750
mov ecx, dword [ebx + 0x134]
mov edi, eax
test ecx, ecx
je 0x434b48
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
test edi, edi
mov dword [ebx + 0x134], edi
setne al
mov byte [ebx + 0x160], al
mov byte [ebx + 0x150], 0
cmp dword [ebx + 0x134], 0
je 0x43a2e9
mov ecx, edi
mov dword [ebp - 0x104], 0
lea edx, [ebp - 0xec]
mov dword [ebp - 0xec], 0
push edx
lea edx, [ebp - 0x104]
mov eax, dword [ecx]
push edx
push 1
push 0xffffffffffffffff
mov eax, dword [eax + 0x10]
push ecx
call eax
mov ecx, dword [esi]
mov edi, dword [ebp - 0x104]
test ecx, ecx
je 0x434bb1
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov dword [esi], edi
mov byte [ebx + 0x150], 0
mov ecx, dword [esi]
test ecx, ecx
setne al
mov byte [ebx + 0x160], al
test ecx, ecx
je 0x43a2e9
cmp dword [ebx], 0
je 0x434be3
mov dword [ebp - 0x1d0], 0xffffffff
jmp 0x43a2f3
mov eax, dword [ebp + 8]
lea edi, [ebx + 0x2a8]
push 4
mov ecx, edi
push dword [eax + 8]
push dword [ebx + 0x64]
call fcn.00416470
mov esi, dword [ebp - 0x1b8]
mov ebx, eax
add esi, 0x1e4
test ebx, ebx
jne 0x434c17
push eax
mov ecx, esi
call fcn.00401860
jmp 0x434c33
mov eax, dword [esi]
test eax, eax
je 0x434c26
push eax
call fcn.00489c73
add esp, 4
mov dword [esi], ebx
mov dword [esi + 4], 0
mov byte [esi + 8], 1
mov ecx, esi
call fcn.00401fd0
mov ebx, dword [ebp - 0x1b8]
mov ecx, edi
push 4
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x24], edx
push dword [ebx + 0x70]
call fcn.00415560
mov dword [ebp - 0x200], eax
mov ecx, edi
mov eax, dword [ebp + 8]
push 5
push dword [eax + 4]
push dword [ebx + 0x5c]
call fcn.00416470
mov esi, eax
mov eax, dword [ebp - 0x20]
test esi, esi
jne 0x434cc1
test eax, eax
je 0x434c83
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov dword [ebp - 0x20], edx
test eax, eax
jle 0x434cb9
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
cmp ecx, eax
jl 0x434ca6
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x434cd8
test eax, eax
je 0x434cce
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x20]
mov byte [ebp - 0x18], 1
call fcn.00402080
movzx eax, ax
xorps xmm0, xmm0
push 0x204
mov dword [ebp - 0x204], eax
movlpd qword [ebp - 0x1ac], xmm0
mov dword [ebp - 0x1f4], 0x10
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x1ec], eax
push 0x43a370
push 0x445d00
push 0x10
lea esi, [eax + 4]
mov byte [ebp - 4], 1
push 0x20
push esi
mov dword [eax], 0x10
mov dword [ebp - 0x1bc], esi
call fcn.0048a060
mov dword [ebp - 0x1ac], esi
mov dword [ebp - 0x1a8], 0x10
mov dword [ebp - 0x100], 0
mov edi, dword [ebp - 0x1b8]
sub esp, 8
mov byte [ebp - 4], 3
push 0x4c2cb0
push 0xffffffffffffffff
lea ecx, [edi + 0x5b0]
call fcn.0041a070
mov ecx, eax
call fcn.0041a580
mov dword [ebp - 0x34c], 0
xor eax, eax
mov byte [ebp - 0x344], 0
nop
inc eax
cmp word [eax*2 + 0x4c2ce8], 0
jne 0x434d90
mov dword [ebp - 0x348], eax
xor ecx, ecx
inc eax
mov ebx, 2
mul ebx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x348]
xor ecx, ecx
mov dword [ebp - 0x34c], edx
test eax, eax
jle 0x434ded
mov ax, word [ecx*2 + 0x4c2ce8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x348]
mov edx, dword [ebp - 0x34c]
cmp ecx, eax
jl 0x434dd0
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x344], 1
or eax, 0xffffffff
mov word [ebp - 0x33c], bx
mov word [ebp - 0x334], ax
lea eax, [ebp - 0x34c]
mov byte [ebp - 4], 5
push eax
mov ecx, esi
call fcn.00401560
lea ecx, [ebp - 0x33c]
lea eax, [esi + 0x10]
push ecx
push eax
mov eax, dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
mov dword [ebp - 0x1d4], eax
call eax
test eax, eax
js 0x43a329
lea eax, [ebp - 0x33c]
mov byte [ebp - 4], 3
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantCopy]
push eax
mov dword [ebp - 0x1b4], ebx
call ebx
mov eax, dword [ebp - 0x34c]
test eax, eax
je 0x434e69
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x264], 0
xor eax, eax
mov dword [ebp - 0x26c], 0
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c2d00], 0
jne 0x434e80
mov dword [ebp - 0x268], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x268]
xor ecx, ecx
mov dword [ebp - 0x26c], edx
test eax, eax
jle 0x434edd
mov ax, word [ecx*2 + 0x4c2d00]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x268]
mov edx, dword [ebp - 0x26c]
cmp ecx, eax
jl 0x434ec0
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x264], 1
mov eax, 2
mov word [ebp - 0x25c], ax
or eax, 0xffffffff
mov word [ebp - 0x254], ax
lea eax, [ebp - 0x26c]
mov byte [ebp - 4], 7
push eax
lea ecx, [esi + 0x20]
call fcn.00401560
lea ecx, [ebp - 0x25c]
lea eax, [esi + 0x30]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a32f
lea eax, [ebp - 0x25c]
mov byte [ebp - 4], 3
push eax
call ebx
mov eax, dword [ebp - 0x26c]
test eax, eax
je 0x434f4c
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x284], 0
xor eax, eax
mov dword [ebp - 0x28c], 0
nop
inc eax
cmp word [eax*2 + 0x4c2d14], 0
jne 0x434f60
mov dword [ebp - 0x288], eax
xor ecx, ecx
inc eax
mov esi, 2
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x288]
xor ecx, ecx
mov dword [ebp - 0x28c], edx
test eax, eax
jle 0x434fbd
mov ax, word [ecx*2 + 0x4c2d14]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x288]
mov edx, dword [ebp - 0x28c]
cmp ecx, eax
jl 0x434fa0
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x284], 1
xor eax, eax
mov word [ebp - 0x27c], si
mov word [ebp - 0x274], ax
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x28c]
push eax
mov byte [ebp - 4], 9
lea ecx, [esi + 0x40]
call fcn.00401560
lea ecx, [ebp - 0x27c]
lea eax, [esi + 0x50]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a335
lea eax, [ebp - 0x27c]
mov byte [ebp - 4], 3
push eax
call ebx
mov eax, dword [ebp - 0x28c]
test eax, eax
je 0x43502c
push eax
call fcn.00489c73
add esp, 4
mov edx, dword [edi + 0x138]
lea eax, [ebp - 0x100]
mov ecx, dword [edi + 0x130]
push eax
push 3
push dword [ebp - 0x1bc]
push 0x4c2d38
call fcn.0041a9b0
test al, al
je 0x4350f5
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [ebp - 0x184]
mov esi, dword [ebp - 0x100]
push eax
mov dword [ebp - 0x20c], ebx
call ebx
lea eax, [ebp - 0x184]
mov byte [ebp - 4], 0xb
push eax
call ebx
test esi, esi
je 0x43515a
mov eax, dword [esi]
lea ecx, [ebp - 0x184]
push 0
push 0
push ecx
mov eax, dword [eax + 0x10]
push 0
push 0x4c04c0
push esi
call eax
shr eax, 0x1f
xor al, 1
je 0x43515a
cmp word [ebp - 0x184], 8
jne 0x4350ca
push dword [ebp - 0x17c]
call fcn.0048ddfc
add esp, 4
mov esi, eax
jmp 0x4350d0
mov esi, dword [ebp - 0x17c]
lea eax, [ebp - 0x184]
mov byte [ebp - 4], 3
push eax
call dword [ebp - 0x1b4]
test esi, esi
je 0x43516b
cmp esi, 0xa028
je 0x43516b
mov dword [ebp - 0x1d0], 0xfffffff5
mov edi, dword [ebp - 0x1d0]
mov byte [ebp - 4], 0x71
mov eax, dword [ebp - 0x100]
test eax, eax
je 0x43511b
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 8]
call eax
mov eax, dword [ebp - 0x1bc]
mov byte [ebp - 4], 0
test eax, eax
je 0x43a2f9
push 0x43a370
lea esi, [eax - 4]
mov byte [ebp - 4], 0x72
push dword [esi]
push 0x20
push eax
call fcn.00489f08
mov eax, dword [esi]
shl eax, 5
add eax, 4
push eax
push esi
call fcn.00489c78
add esp, 8
jmp 0x43a2f9
lea eax, [ebp - 0x184]
mov byte [ebp - 4], 3
push eax
call dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x100]
test eax, eax
je 0x43517d
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 8]
call eax
lea eax, [ebp - 0x100]
mov dword [ebp - 0x100], 0
mov edx, dword [edi + 0x138]
mov ecx, dword [edi + 0x130]
push eax
push 0
push 0
push 0x4c2018
call fcn.0041a9b0
push ecx
push 0x4c2d48
lea ecx, [edi + 0x5b0]
call fcn.00419f00
cmp dword [edi], 0
je 0x4351cd
mov dword [ebp - 0x1d0], 0xffffffff
jmp 0x4350ff
push 0x4c2d98
push 0xffffffffffffffff
lea ecx, [edi + 0x5b0]
call fcn.0041a070
mov dword [ebp - 0x36c], 0
xor eax, eax
mov byte [ebp - 0x364], 0
inc eax
cmp word [eax*2 + 0x4c1f08], 0
jne 0x4351f2
mov dword [ebp - 0x368], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x368]
xor ecx, ecx
mov dword [ebp - 0x36c], edx
test eax, eax
jle 0x43524f
mov ax, word [ecx*2 + 0x4c1f08]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x368]
mov edx, dword [ebp - 0x36c]
cmp ecx, eax
jl 0x435232
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x364], 1
cmp dword [ebp - 0x200], 0
mov ecx, 0x4c1abc
mov eax, 0x4c1fc0
mov byte [ebp - 4], 0xe
cmove eax, ecx
mov ecx, 8
push eax
mov eax, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov word [ebp - 0x35c], cx
mov dword [ebp - 0x1f8], eax
call eax
mov dword [ebp - 0x354], eax
test eax, eax
je 0x43a33b
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x36c]
push eax
mov ecx, esi
mov byte [ebp - 4], 0xf
call fcn.00401560
lea ecx, [ebp - 0x35c]
lea eax, [esi + 0x10]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a345
lea eax, [ebp - 0x35c]
mov byte [ebp - 4], 3
push eax
call dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x36c]
test eax, eax
je 0x4352f1
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x100]
test eax, eax
je 0x435303
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 8]
call eax
lea eax, [ebp - 0x100]
mov dword [ebp - 0x100], 0
mov edx, dword [edi + 0x138]
mov ecx, dword [edi + 0x130]
push eax
push 1
push esi
push 0x4c2dd8
call fcn.0041a9b0
test al, al
jne 0x435340
mov dword [ebp - 0x1d0], 0xfffffff4
jmp 0x4350ff
mov esi, dword [ebp - 0x100]
lea eax, [ebp - 0x194]
push eax
call ebx
lea eax, [ebp - 0x194]
mov byte [ebp - 4], 0x11
push eax
call ebx
test esi, esi
je 0x4353c7
mov eax, dword [esi]
lea ecx, [ebp - 0x194]
push 0
push 0
push ecx
mov eax, dword [eax + 0x10]
push 0
push 0x4c04c0
push esi
call eax
shr eax, 0x1f
xor al, 1
je 0x4353c7
cmp word [ebp - 0x194], 8
jne 0x43539d
push dword [ebp - 0x18c]
call fcn.0048ddfc
add esp, 4
mov esi, eax
jmp 0x4353a3
mov esi, dword [ebp - 0x18c]
lea eax, [ebp - 0x194]
mov byte [ebp - 4], 3
push eax
call dword [ebp - 0x1b4]
test esi, esi
je 0x4353d8
mov dword [ebp - 0x1d0], 0xfffffff4
jmp 0x4350ff
lea eax, [ebp - 0x194]
mov byte [ebp - 4], 3
push eax
call dword [ebp - 0x1b4]
push dword [ebp - 0x1e0]
lea ecx, [ebp - 0x20]
call fcn.00401f30
mov edi, eax
mov byte [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
jne 0x43540b
mov eax, dword [edi]
test eax, eax
je 0x435408
cmp word [eax], si
je 0x435408
nop
inc esi
cmp word [eax + esi*2], 0
jne 0x435400
mov dword [edi + 4], esi
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c2028], 0
jne 0x435410
add esi, eax
xor ecx, ecx
mov edx, 2
mov dword [ebp - 0x1e0], esi
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, dword [edi]
mov esi, 0x4c2028
add esp, 4
mov dword [ebp - 0x1f4], eax
mov ecx, eax
mov ebx, 0x53
sub esi, eax
mov word [ecx], bx
add ecx, 2
movzx eax, word [ecx + esi]
mov ebx, eax
test ax, ax
jne 0x435456
cmp dword [edi], 0
mov esi, dword [ebp - 0x1e0]
je 0x435491
movzx eax, word [edx]
mov ebx, eax
test ax, ax
je 0x435491
nop dword [eax]
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x435480
xor eax, eax
mov word [ecx], ax
mov eax, dword [edi]
test eax, eax
je 0x4354a5
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x1f4]
mov dword [edi], eax
mov dword [edi + 4], esi
mov byte [edi + 8], 1
mov edi, dword [ebp - 0x20]
test edi, edi
jne 0x4354d3
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov word [eax], cx
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ecx
mov ebx, dword [ebp - 0x1b8]
mov byte [ebp - 0x18], 1
cmp byte [ebx + 0x188], 0
lea esi, [ebx + 0x170]
jne 0x4354fa
mov ecx, dword [esi]
test ecx, ecx
je 0x4354fa
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov dword [esi], 0
mov edx, edi
mov ecx, dword [ebx + 0x168]
call fcn.0041a750
mov ecx, dword [ebx + 0x16c]
mov edi, eax
test ecx, ecx
je 0x435521
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov dword [ebx + 0x16c], edi
test edi, edi
mov edi, ebx
setne al
mov byte [edi + 0x198], al
mov byte [edi + 0x188], 0
cmp dword [edi + 0x16c], 0
je 0x4355f6
mov edi, esi
nop word [eax + eax]
mov eax, ebx
cmp byte [eax + 0x188], 0
je 0x435561
mov dword [edi], 0
mov ecx, dword [eax + 0x16c]
test ecx, ecx
jne 0x43556f
xor edi, edi
jmp 0x4355a3
lea edx, [ebp - 0xf0]
mov dword [ebp - 0x108], 0
push edx
lea edx, [ebp - 0x108]
mov dword [ebp - 0xf0], 0
mov eax, dword [ecx]
push edx
push 1
push 0xffffffffffffffff
mov eax, dword [eax + 0x10]
push ecx
call eax
mov edi, dword [ebp - 0x108]
mov ecx, dword [esi]
test ecx, ecx
je 0x4355b1
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov dword [esi], edi
mov edi, ebx
mov byte [edi + 0x188], 0
mov ecx, dword [esi]
test ecx, ecx
setne al
mov byte [edi + 0x198], al
test ecx, ecx
je 0x4355f6
mov edx, dword [edi + 0x170]
add edi, 0x170
push 0
push 0
mov eax, ebx
push 0
push 0x4c2df0
mov ecx, dword [eax + 0x168]
call fcn.0041a9b0
jmp 0x435550
mov edx, dword [edi + 0x138]
mov ecx, dword [edi + 0x130]
push 0
push 0
push 0
push 0x4c2018
call fcn.0041a9b0
push ecx
push 0x4c2e10
lea ecx, [edi + 0x5b0]
call fcn.00419f00
cmp dword [edi], 0
je 0x435630
or edi, 0xffffffff
jmp 0x435105
push 4
push dword [edi + 0x74]
lea ecx, [edi + 0x2a8]
call fcn.00415560
mov ecx, dword [edi + 0x68]
cmp ecx, 0xffffffff
jne 0x435650
mov ecx, dword [edi + 0x2e8]
jmp 0x435671
mov edx, dword [edi + 0x2e4]
test edx, edx
je 0x435697
cmp ecx, 1
jl 0x435697
cmp ecx, dword [edi + 0x2e8]
jg 0x435697
lea eax, [ecx + ecx*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x435697
mov eax, dword [edi + 0x2e4]
lea ecx, [ecx + ecx*8]
push 0
push 0
push 0x1004
push dword [eax + ecx*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, eax
mov dword [ebp - 0x1f4], eax
jmp 0x43569f
xor esi, esi
mov dword [ebp - 0x1f4], esi
mov eax, dword [ebp + 8]
lea ebx, [edi + 0x2a8]
push 3
xorps xmm0, xmm0
mov dword [ebp - 0xc8], 0
mov ecx, ebx
movq qword [ebp - 0xd0], xmm0
push dword [eax + 4]
mov dword [ebp - 0x1ec], ebx
push dword [edi + 0x5c]
call fcn.00416470
mov dword [ebp - 0x208], eax
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xc8], 1
xorps xmm0, xmm0
mov dword [ebp - 0xa4], 0
xor eax, eax
movq qword [ebp - 0xac], xmm0
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0x1fc], eax
mov dword [ebp - 0xac], eax
mov byte [ebp - 0xa4], 1
xor ecx, ecx
mov byte [ebp - 4], 0x15
mov eax, esi
movlpd qword [ebp - 0xfc], xmm0
mov edx, 0x18
mov dword [ebp - 0x1e0], esi
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x1d8], eax
push 0x4702e0
push 0x4702b0
push esi
mov byte [ebp - 4], 0x16
mov dword [eax], esi
add eax, 4
push 0x18
push eax
mov dword [ebp - 0x1f0], eax
call fcn.0048a060
mov eax, dword [ebp - 0x1f0]
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xf8], esi
xor eax, eax
mov byte [ebp - 4], 0x17
mov dword [ebp - 0x1cc], 0x400
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1d0], eax
test esi, esi
jle 0x43734f
lea ecx, [edi + 0x1e4]
mov dword [ebp - 0x1c4], ecx
nop word [eax + eax]
push 4
push eax
push dword [edi + 0x68]
mov ecx, ebx
call fcn.00416470
mov esi, eax
test esi, esi
jne 0x4357f7
push eax
lea ecx, [ebp - 0xac]
call fcn.00401860
mov eax, dword [ebp - 0xac]
jmp 0x435823
mov eax, dword [ebp - 0x1fc]
test eax, eax
je 0x43580a
push eax
call fcn.00489c73
add esp, 4
mov eax, esi
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xac], eax
mov byte [ebp - 0xa4], 1
mov edi, dword [ebp - 0x208]
mov dword [ebp - 0x1fc], eax
test edi, edi
jne 0x435856
push 2
call fcn.0048a02b
mov edi, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x208], edi
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0xcc], eax
mov word [edi], ax
mov eax, dword [ebp - 0x1fc]
mov byte [ebp - 0xc8], 1
test eax, eax
jne 0x43589e
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x1fc], eax
xor ecx, ecx
mov dword [ebp - 0xac], eax
mov edx, eax
mov dword [ebp - 0xa8], ecx
mov word [eax], cx
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x20], ecx
mov byte [ebp - 0x18], cl
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x1c0], edx
jmp 0x4358bb
mov esi, dword [ebp - 0x20]
mov edx, eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c0], eax
mov byte [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov ebx, 0x4c2238
mov dword [ebp - 0x1c8], esi
mov byte [ebp - 0xa4], 1
xor ecx, ecx
nop
inc ecx
cmp word [ecx*2 + 0x4c2028], 0
jne 0x4358d0
cmp dword [ebp - 0x208], 0
jne 0x4358f3
mov dword [ebp - 0x1c8], esi
mov dword [ebp - 0x1c0], edx
jmp 0x435928
mov esi, dword [ebp - 0x208]
xor eax, eax
cmp word [esi], ax
mov esi, dword [ebp - 0x1c8]
je 0x435926
mov dword [ebp - 0x1c8], esi
mov esi, dword [ebp - 0x208]
mov dword [ebp - 0x1c0], edx
inc eax
cmp word [esi + eax*2], 0
jne 0x435918
mov esi, dword [ebp - 0x1c8]
add ecx, eax
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c2238], 0
jne 0x435930
add ecx, eax
cmp dword [ebp - 0x1fc], 0
jne 0x435955
mov dword [ebp - 0x1c8], esi
mov dword [ebp - 0x1c0], edx
jmp 0x43598a
mov esi, dword [ebp - 0x1fc]
xor eax, eax
cmp word [esi], ax
mov esi, dword [ebp - 0x1c8]
je 0x435988
mov dword [ebp - 0x1c0], edx
mov edx, dword [ebp - 0x1fc]
mov dword [ebp - 0x1c8], esi
nop word [eax + eax]
inc eax
cmp word [edx + eax*2], 0
jne 0x435980
add ecx, eax
lea eax, [ecx + 1]
mov dword [ebp - 0x1e0], ecx
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1d8], ecx
test eax, eax
je 0x4359d4
movzx edx, word [eax]
test dx, dx
je 0x4359d4
mov word [ecx], dx
lea eax, [eax + 2]
movzx edx, word [eax]
add ecx, 2
test dx, dx
jne 0x4359c3
mov edx, 0x4c2028
mov esi, 0x53
sub edx, ecx
mov word [ecx], si
add ecx, 2
movzx eax, word [ecx + edx]
mov esi, eax
test ax, ax
jne 0x4359e0
mov eax, dword [ebp - 0x208]
test eax, eax
je 0x435a16
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x435a16
mov word [ecx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
add ecx, 2
test ax, ax
jne 0x435a05
mov eax, 0x20
nop dword [eax + eax]
mov word [ecx], ax
lea ebx, [ebx + 2]
movzx eax, word [ebx]
add ecx, 2
test ax, ax
jne 0x435a20
mov eax, dword [ebp - 0x1fc]
test eax, eax
je 0x435a61
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x435a61
mov edx, dword [ebp - 0x1c0]
nop dword [eax + eax]
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x435a50
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x435a76
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x1e0]
mov ebx, dword [ebp - 0x1d8]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c8]
mov dword [ebp - 0x20], ebx
mov byte [ebp - 0x18], 1
test eax, eax
je 0x435aa2
push eax
call fcn.00489c73
mov ebx, dword [ebp - 0x20]
add esp, 4
test ebx, ebx
jne 0x435abe
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov word [eax], cx
mov ebx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ecx
mov edi, dword [ebp - 0x1b8]
add edi, 0x168
mov byte [ebp - 0x18], 1
cmp byte [edi + 0x20], 0
jne 0x435ae3
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x435ae3
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov dword [edi + 8], 0
mov edx, ebx
mov ecx, dword [edi]
call fcn.0041a750
mov ecx, dword [edi + 4]
mov esi, eax
test ecx, ecx
je 0x435b04
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov ebx, dword [ebp - 0x1b8]
test esi, esi
mov dword [edi + 4], esi
setne al
mov byte [edi + 0x30], al
mov byte [edi + 0x20], 0
cmp dword [edi + 4], 0
je 0x435b97
mov ecx, dword [ebx + 0x16c]
test ecx, ecx
jne 0x435b31
xor esi, esi
jmp 0x435b65
lea edx, [ebp - 0xf4]
mov dword [ebp - 0x10c], 0
push edx
lea edx, [ebp - 0x10c]
mov dword [ebp - 0xf4], 0
mov eax, dword [ecx]
push edx
push 1
push 0xffffffffffffffff
mov eax, dword [eax + 0x10]
push ecx
call eax
mov esi, dword [ebp - 0x10c]
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x435b74
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov dword [edi + 8], esi
mov byte [ebx + 0x188], 0
mov ecx, dword [edi + 8]
test ecx, ecx
mov byte [ebp - 0x1ad], 1
setne al
mov byte [ebx + 0x198], al
test ecx, ecx
jne 0x435b9e
mov byte [ebp - 0x1ad], 0
push 0x4c2e64
push 0xffffffffffffffff
lea ecx, [ebx + 0x5b0]
call fcn.0041a070
mov ecx, dword [ebp - 0x1ec]
push 1
push dword [ebp - 0x1d0]
push dword [ebx + 0x68]
call fcn.00416470
mov ebx, dword [ebp - 0x1c4]
mov esi, eax
test esi, esi
jne 0x435bdc
push eax
mov ecx, ebx
call fcn.00401860
jmp 0x435bf8
mov eax, dword [ebx]
test eax, eax
je 0x435beb
push eax
call fcn.00489c73
add esp, 4
mov dword [ebx], esi
mov dword [ebx + 4], 0
mov byte [ebx + 8], 1
mov ecx, ebx
call fcn.00401fd0
mov ecx, dword [ebp - 0x1ec]
mov ebx, eax
mov eax, dword [ebp - 0x1b8]
mov edi, edx
push 2
push dword [ebp - 0x1d0]
mov dword [ebp - 0x1d8], edi
push dword [eax + 0x68]
call fcn.00416470
mov ecx, dword [ebp - 0x1c4]
mov esi, eax
test esi, esi
jne 0x435c3f
push eax
call fcn.00401860
mov eax, dword [ebp - 0x1c4]
jmp 0x435c61
mov eax, dword [ecx]
test eax, eax
je 0x435c4e
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x1c4]
mov dword [eax], esi
mov dword [eax + 4], 0
mov byte [eax + 8], 1
mov ecx, eax
call fcn.00401fd0
mov esi, dword [ebp - 0x1e8]
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1e0], edx
cmp edi, esi
ja 0x435c92
mov ecx, dword [ebp - 0x1cc]
jb 0x435c8a
cmp ebx, ecx
jae 0x435c92
mov ebx, ecx
mov dword [ebp - 0x1d8], esi
mov ecx, dword [ebp - 0x1f4]
mov esi, dword [ebp - 0x1d0]
dec ecx
mov edi, dword [ebp - 0x1d8]
cmp esi, ecx
jne 0x435cd6
mov ecx, eax
mov eax, edx
mov edx, dword [ebp - 0x24]
add ecx, ebx
adc eax, edi
cmp eax, edx
jb 0x435cd6
mov eax, dword [ebp - 0x1dc]
ja 0x435cc4
cmp ecx, eax
jbe 0x435cd6
sub eax, ebx
mov dword [ebp - 0x1c8], eax
mov eax, edx
sbb eax, edi
mov dword [ebp - 0x1e0], eax
mov eax, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x1ec]
push 4
push esi
push dword [eax + 0x68]
call fcn.00416470
mov esi, eax
mov eax, dword [ebp - 0x20]
test esi, esi
jne 0x435d47
test eax, eax
je 0x435d03
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov dword [ebp - 0x20], edx
test eax, eax
jle 0x435d39
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
cmp ecx, eax
jl 0x435d26
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
jmp 0x435d5c
test eax, eax
je 0x435d54
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x18], 1
test esi, esi
je 0x435d8e
test eax, eax
jne 0x435d7d
cmp word [esi], ax
je 0x435d78
nop dword [eax]
inc eax
cmp word [esi + eax*2], 0
jne 0x435d70
mov dword [ebp - 0x1c], eax
test eax, eax
jle 0x435d8e
push esi
mov byte [ebp - 0x18], 1
call fcn.0048ddfc
add esp, 4
jmp 0x435d94
mov byte [ebp - 0x18], 0
xor eax, eax
xorps xmm0, xmm0
mov dword [ebp - 0xe0], 0
movq qword [ebp - 0xe8], xmm0
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe8], 0
mov byte [ebp - 0xe0], 1
movq qword [ebp - 0xdc], xmm0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xdc], 0
mov byte [ebp - 0xd4], 1
movq qword [ebp - 0x94], xmm0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x94], 0
mov byte [ebp - 0x8c], 1
movq qword [ebp - 0xa0], xmm0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0xa0], 0
mov byte [ebp - 0x98], 1
mov esi, dword [ebp - 0x1bc]
mov edi, 0xa
mov byte [ebp - 4], 0x1b
mov eax, dword [esi]
test eax, eax
je 0x435e6f
push eax
call fcn.00489c73
add esp, 4
mov dword [esi], 0
mov dword [esi + 4], 0
mov byte [esi + 8], 1
add esi, 0x20
sub edi, 1
jne 0x435e60
mov eax, dword [ebp - 0x1f4]
dec eax
cmp dword [ebp - 0x1d0], eax
jge 0x435fca
mov dword [ebp - 0x38c], edi
xor eax, eax
mov byte [ebp - 0x384], 0
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c047c], 0
jne 0x435eb0
mov dword [ebp - 0x388], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x388]
xor ecx, ecx
mov dword [ebp - 0x38c], edx
test eax, eax
jle 0x435f0d
mov ax, word [ecx*2 + 0x4c047c]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x388]
mov edx, dword [ebp - 0x38c]
cmp ecx, eax
jl 0x435ef0
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x384], 1
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0xe8]
push dword [ebp - 0x1e0]
push dword [ebp - 0x1c8]
call fcn.00401cb0
mov esi, eax
cmp dword [esi], 0
jne 0x435f50
push 2
call fcn.0048a02b
add esp, 4
mov dword [esi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [esi + 4], ecx
mov byte [esi + 8], 1
mov eax, 8
mov esi, dword [esi]
push esi
mov word [ebp - 0x37c], ax
call dword [ebp - 0x1f8]
mov dword [ebp - 0x374], eax
test eax, eax
jne 0x435f7b
test esi, esi
jne 0x43a33b
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x38c]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x1d
call fcn.00401560
lea eax, [ebp - 0x37c]
push eax
lea eax, [esi + 0x10]
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
mov edi, dword [ebp - 0x1b4]
lea eax, [ebp - 0x37c]
push eax
mov byte [ebp - 4], 0x1b
call edi
mov eax, dword [ebp - 0x38c]
jmp 0x4360a5
mov dword [ebp - 0x3ac], 0
xor eax, eax
mov byte [ebp - 0x3a4], 0
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c2e98], 0
jne 0x435fe0
mov dword [ebp - 0x3a8], eax
xor ecx, ecx
inc eax
mov esi, 2
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x3a8]
xor ecx, ecx
mov dword [ebp - 0x3ac], edx
test eax, eax
jle 0x43603d
mov ax, word [ecx*2 + 0x4c2e98]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3a8]
mov edx, dword [ebp - 0x3ac]
cmp ecx, eax
jl 0x436020
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x3a4], 1
or eax, 0xffffffff
mov word [ebp - 0x39c], si
mov word [ebp - 0x394], ax
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x3ac]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x1f
call fcn.00401560
lea eax, [ebp - 0x39c]
push eax
lea eax, [esi + 0x10]
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
mov edi, dword [ebp - 0x1b4]
lea eax, [ebp - 0x39c]
push eax
mov byte [ebp - 4], 0x1b
call edi
mov eax, dword [ebp - 0x3ac]
test eax, eax
je 0x4360b2
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x22c], 0
xor eax, eax
mov byte [ebp - 0x224], 0
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c214c], 0
jne 0x4360d0
mov dword [ebp - 0x228], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x228]
xor ecx, ecx
mov dword [ebp - 0x22c], edx
test eax, eax
jle 0x43612d
mov ax, word [ecx*2 + 0x4c214c]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x228]
mov edx, dword [ebp - 0x22c]
cmp ecx, eax
jl 0x436110
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x224], 1
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0xdc]
push dword [ebp - 0x1d8]
push ebx
call fcn.00401cb0
mov esi, eax
cmp dword [esi], 0
jne 0x43616b
push 2
call fcn.0048a02b
add esp, 4
mov dword [esi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [esi + 4], ecx
mov byte [esi + 8], 1
mov eax, 8
mov esi, dword [esi]
push esi
mov word [ebp - 0x21c], ax
call dword [ebp - 0x1f8]
mov dword [ebp - 0x214], eax
test eax, eax
jne 0x436196
test esi, esi
jne 0x43a33b
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x22c]
push eax
mov byte [ebp - 4], 0x21
lea ecx, [esi + 0x20]
call fcn.00401560
lea ecx, [ebp - 0x21c]
lea eax, [esi + 0x30]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
lea eax, [ebp - 0x21c]
mov byte [ebp - 4], 0x1b
push eax
call edi
mov eax, dword [ebp - 0x22c]
test eax, eax
je 0x4361e8
push eax
call fcn.00489c73
add esp, 4
mov ebx, dword [ebp - 0x1b8]
add ebx, 0x168
push 0x4c2178
mov ecx, ebx
call fcn.0041b170
cmp byte [ebx + 0x30], 0
je 0x436314
cmp word [ebx + 0x10], 8
jne 0x436221
push dword [ebx + 0x18]
call fcn.0048ddfc
add esp, 4
movzx eax, ax
jmp 0x436225
movzx eax, word [ebx + 0x18]
test ax, ax
je 0x436314
mov dword [ebp - 0x3cc], 0
xor eax, eax
mov byte [ebp - 0x3c4], 0
inc eax
cmp word [eax*2 + 0x4c2eb8], 0
jne 0x436241
mov dword [ebp - 0x3c8], eax
xor ecx, ecx
inc eax
mov esi, 2
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x3c8]
xor ecx, ecx
mov dword [ebp - 0x3cc], edx
test eax, eax
jle 0x43629e
mov ax, word [ecx*2 + 0x4c2eb8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c8]
mov edx, dword [ebp - 0x3cc]
cmp ecx, eax
jl 0x436281
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x3c4], 1
or eax, 0xffffffff
mov word [ebp - 0x3bc], si
mov word [ebp - 0x3b4], ax
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x3cc]
push eax
mov byte [ebp - 4], 0x23
lea ecx, [esi + 0x40]
call fcn.00401560
lea ecx, [ebp - 0x3bc]
lea eax, [esi + 0x50]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
lea eax, [ebp - 0x3bc]
mov byte [ebp - 4], 0x1b
push eax
call edi
mov eax, dword [ebp - 0x3cc]
test eax, eax
je 0x43630e
push eax
call fcn.00489c73
add esp, 4
mov esi, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x200]
test eax, eax
jne 0x436442
push 0x4c2edc
mov ecx, ebx
call fcn.0041b170
cmp byte [ebx + 0x30], 0
je 0x43643c
cmp word [ebx + 0x10], 8
mov eax, dword [ebx + 0x18]
jne 0x43634b
push eax
call fcn.0048ddfc
add esp, 4
test eax, eax
je 0x43643c
mov dword [ebp - 0x3ec], 0
xor eax, eax
mov byte [ebp - 0x3e4], 0
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c2edc], 0
jne 0x436370
mov dword [ebp - 0x3e8], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x3e8]
xor ecx, ecx
mov dword [ebp - 0x3ec], edx
test eax, eax
jle 0x4363cd
mov ax, word [ecx*2 + 0x4c2edc]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3e8]
mov edx, dword [ebp - 0x3ec]
cmp ecx, eax
jl 0x4363b0
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x3e4], 1
mov eax, 2
mov word [ebp - 0x3dc], ax
or eax, 0xffffffff
mov word [ebp - 0x3d4], ax
lea eax, [ebp - 0x3ec]
mov byte [ebp - 4], 0x25
push eax
lea ecx, [esi + 0x60]
call fcn.00401560
lea ecx, [ebp - 0x3dc]
lea eax, [esi + 0x70]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
lea eax, [ebp - 0x3dc]
mov byte [ebp - 4], 0x1b
push eax
call edi
mov eax, dword [ebp - 0x3ec]
test eax, eax
je 0x43643c
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x200]
mov edi, dword [ebp - 0x1c0]
cmp edi, 0xffffffff
jne 0x436623
mov dword [ebp - 0x40c], 0
xor eax, eax
mov byte [ebp - 0x404], 0
inc eax
cmp word [eax*2 + 0x4c1dd8], 0
jne 0x436464
mov dword [ebp - 0x408], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x408]
xor ecx, ecx
mov dword [ebp - 0x40c], edx
test eax, eax
jle 0x4364cd
nop dword [eax]
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c1dd8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x408]
mov edx, dword [ebp - 0x40c]
cmp ecx, eax
jl 0x4364b0
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x404], 1
mov eax, 8
mov byte [ebp - 4], 0x26
push 0x4bf950
mov word [ebp - 0x3fc], ax
call dword [ebp - 0x1f8]
mov dword [ebp - 0x3f4], eax
test eax, eax
je 0x43a33b
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x40c]
push eax
mov byte [ebp - 4], 0x27
lea ecx, [esi + 0x80]
call fcn.00401560
lea ecx, [ebp - 0x3fc]
lea eax, [esi + 0x90]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
mov ebx, dword [ebp - 0x1b4]
lea eax, [ebp - 0x3fc]
push eax
mov byte [ebp - 4], 0x1b
call ebx
mov eax, dword [ebp - 0x40c]
test eax, eax
je 0x436561
push eax
call fcn.00489c73
add esp, 4
mov ebx, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x100]
test eax, eax
je 0x436579
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 8]
call eax
lea eax, [ebp - 0x100]
mov dword [ebp - 0x100], 0
push eax
mov eax, dword [ebp - 0x1b8]
push 7
push ebx
push 0x4c2f00
mov edx, dword [eax + 0x138]
mov ecx, dword [eax + 0x130]
call fcn.0041a9b0
test al, al
je 0x436dbd
mov esi, dword [ebp - 0x100]
lea eax, [ebp - 0x174]
mov ebx, dword [ebp - 0x20c]
push eax
call ebx
lea eax, [ebp - 0x174]
mov byte [ebp - 4], 0x36
push eax
call ebx
test esi, esi
je 0x436dc7
mov eax, dword [esi]
lea ecx, [ebp - 0x174]
push 0
push 0
push ecx
mov eax, dword [eax + 0x10]
push 0
push 0x4c04c0
push esi
call eax
shr eax, 0x1f
xor al, 1
je 0x436dc7
cmp word [ebp - 0x174], 8
jne 0x436da6
push dword [ebp - 0x16c]
call fcn.0048ddfc
add esp, 4
mov esi, eax
jmp 0x436dac
cmp edi, 0xfffffffe
jne 0x436815
mov dword [ebp - 0x42c], 0
xor eax, eax
mov byte [ebp - 0x424], 0
nop
inc eax
cmp word [eax*2 + 0x4c1dd8], 0
jne 0x436640
mov dword [ebp - 0x428], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x428]
xor ecx, ecx
mov dword [ebp - 0x42c], edx
test eax, eax
jle 0x43669d
mov ax, word [ecx*2 + 0x4c1dd8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x428]
mov edx, dword [ebp - 0x42c]
cmp ecx, eax
jl 0x436680
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x424], 1
mov eax, 8
mov byte [ebp - 4], 0x28
push 0x4bf9a0
mov word [ebp - 0x41c], ax
call dword [ebp - 0x1f8]
mov dword [ebp - 0x414], eax
test eax, eax
je 0x43a33b
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x42c]
push eax
mov byte [ebp - 4], 0x29
lea ecx, [esi + 0x80]
call fcn.00401560
lea ecx, [ebp - 0x41c]
lea eax, [esi + 0x90]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
mov ebx, dword [ebp - 0x1b4]
lea eax, [ebp - 0x41c]
push eax
mov byte [ebp - 4], 0x1b
call ebx
mov eax, dword [ebp - 0x42c]
test eax, eax
je 0x436731
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x2a4], 0
xor eax, eax
mov dword [ebp - 0x2ac], 0
inc eax
cmp word [eax*2 + 0x4c2edc], 0
jne 0x436744
mov dword [ebp - 0x2a8], eax
xor ecx, ecx
inc eax
mov esi, 2
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2a8]
xor ecx, ecx
mov dword [ebp - 0x2ac], edx
test eax, eax
jle 0x4367ad
nop dword [eax]
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c2edc]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2a8]
mov edx, dword [ebp - 0x2ac]
cmp ecx, eax
jl 0x436790
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x2a4], 1
or eax, 0xffffffff
mov word [ebp - 0x29c], si
mov word [ebp - 0x294], ax
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x2ac]
push eax
mov byte [ebp - 4], 0x2b
lea ecx, [esi + 0x60]
call fcn.00401560
lea ecx, [ebp - 0x29c]
lea eax, [esi + 0x70]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
lea eax, [ebp - 0x29c]
mov byte [ebp - 4], 0x1b
push eax
call ebx
mov eax, dword [ebp - 0x2ac]
jmp 0x436554
test eax, eax
mov eax, dword [ebp - 0x204]
jne 0x436a4a
cmp byte [ebp - 0x1ad], 0
je 0x436946
cmp ax, 2
jne 0x436946
mov dword [ebp - 0x44c], 0
xor eax, eax
mov byte [ebp - 0x444], 0
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c1dd8], 0
jne 0x436850
mov dword [ebp - 0x448], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x448]
xor ecx, ecx
mov dword [ebp - 0x44c], edx
test eax, eax
jle 0x4368ad
mov ax, word [ecx*2 + 0x4c1dd8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x448]
mov edx, dword [ebp - 0x44c]
cmp ecx, eax
jl 0x436890
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x444], 1
push ecx
push 0x4c1dd8
mov ecx, ebx
mov byte [ebp - 4], 0x2c
call fcn.0041b250
mov esi, eax
mov eax, 8
push esi
mov word [ebp - 0x43c], ax
call dword [ebp - 0x1f8]
mov dword [ebp - 0x434], eax
test eax, eax
jne 0x4368f2
test esi, esi
jne 0x43a33b
mov ebx, dword [ebp - 0x1bc]
lea eax, [ebp - 0x44c]
push eax
mov byte [ebp - 4], 0x2d
lea ecx, [ebx + 0x80]
call fcn.00401560
lea ecx, [ebp - 0x43c]
lea eax, [ebx + 0x90]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
lea eax, [ebp - 0x43c]
mov byte [ebp - 4], 0x1b
push eax
call dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x44c]
jmp 0x436c9c
cmp ax, 1
jne 0x436561
mov dword [ebp - 0x46c], 0
xor eax, eax
mov byte [ebp - 0x464], 0
inc eax
cmp word [eax*2 + 0x4c1dd8], 0
jne 0x436963
mov dword [ebp - 0x468], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x468]
xor ecx, ecx
mov dword [ebp - 0x46c], edx
test eax, eax
jle 0x4369c0
mov ax, word [ecx*2 + 0x4c1dd8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x468]
mov edx, dword [ebp - 0x46c]
cmp ecx, eax
jl 0x4369a3
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x464], 1
mov eax, 8
mov byte [ebp - 4], 0x2e
push 0x4bf9f0
mov word [ebp - 0x45c], ax
call dword [ebp - 0x1f8]
mov dword [ebp - 0x454], eax
test eax, eax
je 0x43a33b
mov ebx, dword [ebp - 0x1bc]
lea eax, [ebp - 0x46c]
push eax
mov byte [ebp - 4], 0x2f
lea ecx, [ebx + 0x80]
call fcn.00401560
lea ecx, [ebp - 0x45c]
lea eax, [ebx + 0x90]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
lea eax, [ebp - 0x45c]
mov byte [ebp - 4], 0x1b
push eax
call dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x46c]
jmp 0x436c9c
cmp byte [ebp - 0x1ad], 0
je 0x436cb2
cmp ax, 1
jne 0x436cb2
mov dword [ebp - 0x48c], 0
xor eax, eax
mov byte [ebp - 0x484], 0
inc eax
cmp word [eax*2 + 0x4c2ef0], 0
jne 0x436a74
mov dword [ebp - 0x488], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x488]
xor ecx, ecx
mov dword [ebp - 0x48c], edx
test eax, eax
jle 0x436add
nop dword [eax]
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c2ef0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x488]
mov edx, dword [ebp - 0x48c]
cmp ecx, eax
jl 0x436ac0
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x484], 1
push 0x4c2ef0
mov ecx, ebx
mov byte [ebp - 4], 0x30
call fcn.0041b170
cmp byte [ebx + 0x30], 0
jne 0x436b04
xor eax, eax
jmp 0x436b1f
cmp word [ebx + 0x10], 8
jne 0x436b1b
push dword [ebx + 0x18]
call fcn.0048ddfc
add esp, 4
movzx eax, ax
jmp 0x436b1f
movzx eax, word [ebx + 0x18]
mov ecx, 0x12
mov word [ebp - 0x474], ax
mov word [ebp - 0x47c], cx
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x48c]
push eax
mov byte [ebp - 4], 0x31
lea ecx, [esi + 0xa0]
call fcn.00401560
lea ecx, [ebp - 0x47c]
lea eax, [esi + 0xb0]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
lea eax, [ebp - 0x47c]
mov byte [ebp - 4], 0x1b
push eax
call dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x48c]
test eax, eax
je 0x436b8e
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x2c4], 0
xor eax, eax
mov dword [ebp - 0x2cc], 0
inc eax
cmp word [eax*2 + 0x4c2110], 0
jne 0x436ba1
mov dword [ebp - 0x2c8], eax
xor ecx, ecx
inc eax
mov esi, 2
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2c8]
xor ecx, ecx
mov dword [ebp - 0x2cc], edx
test eax, eax
jle 0x436bfe
mov ax, word [ecx*2 + 0x4c2110]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2c8]
mov edx, dword [ebp - 0x2cc]
cmp ecx, eax
jl 0x436be1
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x2c4], 1
push 0x4c2110
mov ecx, ebx
mov byte [ebp - 4], 0x32
call fcn.0041b170
cmp byte [ebx + 0x30], 0
jne 0x436c25
xor eax, eax
jmp 0x436c38
cmp word [ebx + 0x10], 8
mov eax, dword [ebx + 0x18]
jne 0x436c38
push eax
call fcn.0048ddfc
add esp, 4
neg eax
mov word [ebp - 0x2bc], si
sbb eax, eax
movzx eax, ax
mov word [ebp - 0x2b4], ax
mov ebx, dword [ebp - 0x1bc]
lea eax, [ebp - 0x2cc]
push eax
mov byte [ebp - 4], 0x33
lea ecx, [ebx + 0xc0]
call fcn.00401560
lea ecx, [ebp - 0x2bc]
lea eax, [ebx + 0xd0]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
lea eax, [ebp - 0x2bc]
mov byte [ebp - 4], 0x1b
push eax
call dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x2cc]
test eax, eax
je 0x436567
push eax
call fcn.00489c73
add esp, 4
jmp 0x436567
cmp ax, 2
jne 0x436561
mov dword [ebp - 0x4ac], 0
xor eax, eax
mov byte [ebp - 0x4a4], 0
nop
inc eax
cmp word [eax*2 + 0x4c2ef0], 0
jne 0x436cd0
mov dword [ebp - 0x4a8], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x4a8]
xor ecx, ecx
mov dword [ebp - 0x4ac], edx
test eax, eax
jle 0x436d2d
mov ax, word [ecx*2 + 0x4c2ef0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x4a8]
mov edx, dword [ebp - 0x4ac]
cmp ecx, eax
jl 0x436d10
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, 0x12
mov word [ebp - 0x49c], ax
mov eax, 7
mov byte [ebp - 0x4a4], 1
mov word [ebp - 0x494], ax
mov ebx, dword [ebp - 0x1bc]
lea eax, [ebp - 0x4ac]
push eax
mov byte [ebp - 4], 0x34
lea ecx, [ebx + 0xa0]
call fcn.00401560
lea ecx, [ebp - 0x49c]
lea eax, [ebx + 0xb0]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
lea eax, [ebp - 0x49c]
mov byte [ebp - 4], 0x1b
push eax
call dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x4ac]
jmp 0x436c9c
mov esi, dword [ebp - 0x16c]
lea eax, [ebp - 0x174]
push eax
call dword [ebp - 0x1b4]
test esi, esi
je 0x436dd4
mov edi, 0xfffffff3
jmp 0x437331
lea eax, [ebp - 0x174]
push eax
call dword [ebp - 0x1b4]
mov esi, dword [ebp - 0x100]
lea eax, [ebp - 0x164]
push eax
call ebx
lea eax, [ebp - 0x164]
mov byte [ebp - 4], 0x38
push eax
call ebx
test esi, esi
je 0x436e69
mov eax, dword [esi]
lea ecx, [ebp - 0x164]
push 0
push 0
push ecx
mov eax, dword [eax + 0x10]
push 0
push 0x4c2f20
push esi
call eax
shr eax, 0x1f
xor al, 1
je 0x436e69
cmp word [ebp - 0x164], 0xd
jne 0x436e69
mov ecx, dword [ebp - 0x15c]
test ecx, ecx
je 0x436e69
mov dword [ebp - 0x110], 0
lea edx, [ebp - 0x110]
mov eax, dword [ecx]
push edx
push 0x4cc6f8
push ecx
mov eax, dword [eax]
call eax
test eax, eax
lea eax, [ebp - 0x164]
push eax
jne 0x436e70
mov ebx, dword [ebp - 0x110]
mov dword [ebp - 0x1c0], ebx
call dword [ebp - 0x1b4]
jmp 0x436e7e
lea eax, [ebp - 0x164]
push eax
call dword [ebp - 0x1b4]
xor ebx, ebx
mov dword [ebp - 0x1c0], ebx
mov dword [ebp - 0x5c], ebx
mov eax, dword [ebp - 0x1d0]
mov edx, 0x4c0448
mov esi, dword [ebp - 0x1f0]
mov ecx, ebx
add esi, 0xc
mov byte [ebp - 4], 0x39
push 0
lea eax, [eax + eax*2]
lea esi, [esi + eax*8]
push esi
call fcn.0041ad30
add esp, 8
test al, al
je 0x436f4e
mov eax, dword [esi + 4]
test eax, eax
jne 0x436ed9
mov ecx, dword [esi]
test ecx, ecx
je 0x436ece
cmp word [ecx], ax
je 0x436ece
inc eax
cmp word [ecx + eax*2], 0
jne 0x436ec6
mov dword [esi + 4], eax
test eax, eax
je 0x436f4e
cmp dword [ebp - 0x200], 0
jne 0x436f1e
cmp edi, 0xffffffff
jne 0x436f00
mov eax, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x1f0]
push 0x4c2f44
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
jmp 0x436f49
cmp edi, 0xfffffffe
jne 0x436f1e
mov eax, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x1f0]
push 0x4c1b18
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
jmp 0x436f49
mov ecx, dword [ebp - 0x1b8]
push 0
push 0x4c0448
lea ecx, [ecx + 0x168]
call fcn.0041b250
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1f0]
push eax
lea ecx, [ecx + ecx*2]
lea ecx, [edx + ecx*8]
call fcn.00401860
mov eax, dword [ebp - 0x1b8]
push 0
push 0
push 0
mov edx, dword [eax + 0x138]
mov ecx, dword [eax + 0x130]
push 0x4c2018
call fcn.0041a9b0
test ebx, ebx
je 0x4370ef
mov esi, dword [ebp - 0x20c]
lea eax, [ebp - 0x124]
push eax
call esi
lea eax, [ebp - 0x124]
mov byte [ebp - 4], 0x3a
push eax
call esi
mov eax, dword [ebx]
lea ecx, [ebp - 0x124]
push 0
push 0
push ecx
mov eax, dword [eax + 0x10]
push 0
push 0x4c047c
push ebx
call eax
shr eax, 0x1f
xor al, 1
jne 0x436fdb
lea eax, [ebp - 0x124]
push eax
call dword [ebp - 0x1b4]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1e4], xmm0
mov esi, dword [ebp - 0x1e0]
mov edi, dword [ebp - 0x1e4]
jmp 0x437012
cmp word [ebp - 0x124], 8
jne 0x436ff9
push dword [ebp - 0x11c]
call fcn.0048de1f
add esp, 4
mov edi, eax
mov esi, edx
jmp 0x437005
mov edi, dword [ebp - 0x11c]
mov esi, dword [ebp - 0x118]
lea eax, [ebp - 0x124]
push eax
call dword [ebp - 0x1b4]
lea eax, [ebp - 0x134]
push eax
call dword [ebp - 0x20c]
lea eax, [ebp - 0x134]
mov byte [ebp - 4], 0x3b
push eax
call dword [ebp - 0x20c]
mov eax, dword [ebx]
lea ecx, [ebp - 0x134]
push 0
push 0
push ecx
mov eax, dword [eax + 0x10]
push 0
push 0x4c214c
push ebx
call eax
shr eax, 0x1f
xor al, 1
jne 0x43708e
lea eax, [ebp - 0x134]
push eax
call dword [ebp - 0x1b4]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1e4], xmm0
mov eax, dword [ebp - 0x1e0]
mov dword [ebp - 0x1e8], eax
mov eax, dword [ebp - 0x1e4]
add eax, edi
mov dword [ebp - 0x1cc], eax
adc dword [ebp - 0x1e8], esi
jmp 0x437113
cmp word [ebp - 0x134], 8
jne 0x4370b4
push dword [ebp - 0x12c]
call fcn.0048de1f
add esp, 4
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0x1e8], edx
jmp 0x4370cc
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x1cc], eax
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x1e8], eax
lea eax, [ebp - 0x134]
push eax
call dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x1cc]
add eax, edi
mov dword [ebp - 0x1cc], eax
adc dword [ebp - 0x1e8], esi
jmp 0x437113
mov eax, dword [ebp - 0x1cc]
add eax, dword [ebp - 0x1c8]
mov dword [ebp - 0x1cc], eax
mov eax, dword [ebp - 0x1e8]
adc eax, dword [ebp - 0x1e0]
mov dword [ebp - 0x1e8], eax
mov esi, dword [ebp - 0x20c]
lea eax, [ebp - 0x154]
push eax
call esi
lea eax, [ebp - 0x154]
mov byte [ebp - 4], 0x3c
push eax
call esi
test ebx, ebx
je 0x43719a
mov eax, dword [ebx]
lea ecx, [ebp - 0x154]
push 0
push 0
push ecx
mov eax, dword [eax + 0x10]
push 0
push 0x4c20a4
push ebx
call eax
shr eax, 0x1f
xor al, 1
je 0x43719a
cmp word [ebp - 0x154], 8
jne 0x437181
push dword [ebp - 0x14c]
call fcn.0048ddfc
add esp, 4
mov byte [ebp - 4], 0x39
mov esi, eax
lea eax, [ebp - 0x154]
push eax
call dword [ebp - 0x1b4]
jmp 0x4371ad
mov esi, dword [ebp - 0x14c]
lea eax, [ebp - 0x154]
push eax
mov byte [ebp - 4], 0x39
call dword [ebp - 0x1b4]
jmp 0x4371ad
lea eax, [ebp - 0x154]
mov byte [ebp - 4], 0x39
push eax
call dword [ebp - 0x1b4]
xor esi, esi
push esi
lea ecx, [ebp - 0x20]
call fcn.00401f30
mov ebx, eax
mov dword [ebp - 0x1e0], ebx
mov byte [ebx + 8], 0
mov esi, dword [ebx + 4]
test esi, esi
jne 0x4371df
mov ecx, dword [ebx]
test ecx, ecx
je 0x4371dc
cmp word [ecx], si
je 0x4371dc
inc esi
cmp word [ecx + esi*2], 0
jne 0x4371d4
mov dword [ebx + 4], esi
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c2f50], 0
jne 0x4371e1
add esi, eax
xor ecx, ecx
mov edx, 2
lea eax, [esi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, dword [ebx]
add esp, 4
mov ebx, 0x4c2f50
mov dword [ebp - 0x1d8], eax
mov ecx, eax
mov edi, 0x53
sub ebx, eax
mov word [ecx], di
add ecx, 2
movzx eax, word [ebx + ecx]
mov edi, eax
test ax, ax
jne 0x437221
mov ebx, dword [ebp - 0x1e0]
cmp dword [ebx], 0
je 0x437258
movzx eax, word [edx]
mov edi, eax
test ax, ax
je 0x437258
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x437247
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebx]
test eax, eax
je 0x43726c
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x1d8]
mov dword [ebx], eax
mov dword [ebx + 4], esi
mov byte [ebx + 8], 1
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x43729a
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ecx
mov edi, dword [ebp - 0x1b8]
push ecx
push eax
mov byte [ebp - 0x18], 1
lea ecx, [edi + 0x5b0]
call fcn.00419f00
cmp dword [edi], 0
jne 0x437318
mov ecx, dword [ebp - 0x1c0]
mov byte [ebp - 4], 0x3f
test ecx, ecx
je 0x4372cc
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x4372df
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0xe8]
test eax, eax
je 0x4372f6
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x1d0]
mov esi, dword [ebp - 0x1f4]
inc eax
mov dword [ebp - 0x1d0], eax
cmp eax, esi
jge 0x43734f
mov ebx, dword [ebp - 0x1ec]
jmp 0x4357d0
mov ecx, dword [ebp - 0x1c0]
mov byte [ebp - 4], 0x3d
test ecx, ecx
je 0x43732e
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
or edi, 0xffffffff
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x437344
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0xe8]
jmp 0x43a277
push 0x4c2f98
lea ecx, [edi + 0x5b0]
push 0xffffffffffffffff
call fcn.0041a070
mov ecx, edi
call fcn.0042eef0
xorps xmm0, xmm0
mov dword [ebp - 0x68], 0
movq qword [ebp - 0x70], xmm0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x70], 0
mov byte [ebp - 0x68], 1
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xc4], 0
mov byte [ebp - 0xbc], 1
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0
xor edx, edx
mov byte [ebp - 4], 0x41
mov dword [ebp - 0x1cc], edx
test esi, esi
jle 0x43760e
lea ecx, [edi + 0x168]
lea eax, [edi + 0x1a0]
mov dword [ebp - 0x1d8], ecx
mov dword [ebp - 0x1e8], eax
nop
cmp dword [edi], 0
jne 0x4393f4
xorps xmm0, xmm0
mov dword [ebp - 0x4c], 0
movq qword [ebp - 0x54], xmm0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x54], 0
mov byte [ebp - 0x4c], 1
movq qword [ebp - 0x88], xmm0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x88], 0
mov byte [ebp - 0x80], 1
movq qword [ebp - 0x30], xmm0
xor ecx, ecx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], ecx
mov byte [ebp - 0x28], 1
mov edi, dword [ebp - 0x1f0]
lea eax, [edx + edx*2]
mov byte [ebp - 4], 0x46
mov byte [ebp - 0x1ec], cl
mov ebx, dword [edi + eax*8]
cmp ebx, 0x4c2f44
je 0x4374be
test ebx, ebx
je 0x437580
mov esi, 0x4c2f44
sub ebx, esi
nop word [eax + eax]
movzx eax, word [ebx + esi]
mov ecx, eax
test ax, ax
jne 0x43752c
cmp word [esi], ax
jne 0x437531
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x4374b8
push eax
call fcn.00489c73
add esp, 4
mov edi, dword [ebp - 0x1f0]
mov byte [ebp - 0x4c], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c2fd8], 0
jne 0x4374c4
mov dword [ebp - 0x50], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x50]
xor ecx, ecx
mov dword [ebp - 0x54], edx
test eax, eax
jle 0x437517
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c2fd8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x54]
cmp ecx, eax
jl 0x437500
mov ebx, dword [ebp - 0x1d8]
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x4c], 1
jmp 0x437e9c
cmp ax, word [esi]
je 0x437569
xor edx, edx
cmp dx, ax
jne 0x43753c
xor edi, edi
jmp 0x437548
push ecx
call fcn.0048dee4
add esp, 4
movzx edi, ax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x437558
xor eax, eax
jmp 0x437564
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp di, ax
jne 0x437571
add esi, 2
jmp 0x437490
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x1cc]
mov edi, dword [ebp - 0x1f0]
lea eax, [edx + edx*2]
mov ebx, dword [edi + eax*8]
cmp ebx, 0x4c1b18
je 0x4375bb
test ebx, ebx
je 0x437863
mov esi, 0x4c1b18
sub ebx, esi
nop dword [eax]
movzx eax, word [ebx + esi]
mov ecx, eax
test ax, ax
jne 0x43780f
cmp word [esi], ax
jne 0x437814
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x4375c8
push ecx
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x4375db
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 4], 0x41
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x4375ef
push eax
call fcn.00489c73
add esp, 4
mov edx, dword [ebp - 0x1cc]
mov edi, dword [ebp - 0x1b8]
inc edx
mov dword [ebp - 0x1cc], edx
cmp edx, dword [ebp - 0x1f4]
jl 0x4373f0
cmp dword [ebp - 0xb8], 0
mov dword [ebp - 0x1d0], 1
je 0x43a223
push 4
push dword [edi + 0x74]
lea ecx, [edi + 0x2a8]
call fcn.00415560
test eax, eax
je 0x43a223
push 0x4c3198
push 0xffffffffffffffb0
lea ecx, [edi + 0x5b0]
call fcn.0041a070
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
movq qword [ebp - 0x48], xmm0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov byte [ebp - 0x40], 1
movq qword [ebp - 0x3c], xmm0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], 0
mov byte [ebp - 0x34], 1
movq qword [ebp - 0xa0], xmm0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0xa0], 0
xor eax, eax
movq qword [ebp - 0x94], xmm0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x1f4], eax
mov dword [ebp - 0x94], eax
mov byte [ebp - 0x8c], 1
xor ebx, ebx
movq qword [ebp - 0x64], xmm0
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x1cc], ebx
mov dword [ebp - 0x64], ebx
mov byte [ebp - 0x5c], 1
mov byte [ebp - 4], 0x64
push 0x20a
mov byte [ebp - 0x98], bl
mov dword [ebp - 0x9c], ebx
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0xa0], eax
xor ecx, ecx
mov word [eax + 0x208], cx
push eax
push ecx
push ecx
push 0x25
push ecx
mov word [eax], cx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov edx, dword [ebp - 0xc4]
test eax, eax
mov eax, dword [ebp - 0xc0]
sete byte [ebp - 0x98]
test eax, eax
jne 0x437762
xor eax, eax
test edx, edx
je 0x43775c
cmp word [edx], ax
je 0x43775c
inc eax
cmp word [edx + eax*2], 0
jne 0x437754
mov dword [ebp - 0xc0], eax
cmp eax, 0xa
jle 0x439710
test edx, edx
jne 0x437790
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0xc4], eax
xor ecx, ecx
mov word [eax], cx
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0xc0], ecx
lea esi, [edi + 0x168]
mov byte [ebp - 0xbc], 1
cmp byte [esi + 0x20], 0
je 0x4377aa
mov dword [esi + 8], 0
mov ecx, dword [esi]
call fcn.0041a8d0
mov ecx, dword [esi + 8]
mov ebx, eax
test ecx, ecx
je 0x4377c2
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov ecx, ebx
mov dword [esi + 8], ebx
test ecx, ecx
mov byte [esi + 0x20], 0
setne al
mov byte [esi + 0x30], al
test ecx, ecx
je 0x439708
push 0x4c2178
mov ecx, esi
call fcn.0041b170
cmp byte [esi + 0x30], 0
je 0x4394a8
cmp word [esi + 0x10], 8
jne 0x4393fc
push dword [esi + 0x18]
call fcn.0048ddfc
add esp, 4
movzx esi, ax
jmp 0x439400
cmp ax, word [esi]
je 0x43784c
xor edx, edx
cmp dx, ax
jne 0x43781f
xor edi, edi
jmp 0x43782b
push ecx
call fcn.0048dee4
add esp, 4
movzx edi, ax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x43783b
xor eax, eax
jmp 0x437847
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp di, ax
jne 0x437854
add esi, 2
jmp 0x4375a0
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x1cc]
mov edi, dword [ebp - 0x1f0]
lea eax, [edx + edx*2]
mov edx, dword [edi + eax*8]
test edx, edx
je 0x4375bb
cmp word [edx], 0
je 0x4375bb
mov ebx, dword [ebp - 0x1d8]
mov byte [edi + eax*8 + 8], 1
cmp byte [ebx + 0x20], 0
je 0x437893
mov dword [ebx + 8], 0
mov ecx, dword [ebx]
call fcn.0041a8d0
mov ecx, dword [ebx + 8]
mov edi, eax
test ecx, ecx
je 0x4378ab
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov ecx, edi
mov dword [ebx + 8], edi
test ecx, ecx
mov byte [ebx + 0x20], 0
setne al
mov byte [ebx + 0x30], al
test ecx, ecx
je 0x4375b8
push 0x4c208c
mov ecx, ebx
call fcn.0041b170
cmp byte [ebx + 0x30], 0
jne 0x4378da
xor esi, esi
jmp 0x4378f3
cmp word [ebx + 0x10], 8
jne 0x4378f0
push dword [ebx + 0x18]
call fcn.0048ddfc
add esp, 4
mov esi, eax
jmp 0x4378f3
mov esi, dword [ebx + 0x18]
push 0x4c20a4
mov ecx, ebx
call fcn.0041b170
cmp byte [ebx + 0x30], 0
jne 0x437909
xor eax, eax
jmp 0x437920
cmp word [ebx + 0x10], 8
jne 0x43791d
push dword [ebx + 0x18]
call fcn.0048ddfc
add esp, 4
jmp 0x437920
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp - 0x1b8]
push 0
push eax
push esi
call fcn.0042f260
test eax, eax
jne 0x437944
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4375c8
push eax
jmp 0x4375c0
mov ebx, dword [ebp - 0x1e8]
mov ecx, ebx
push 0
push 0x4c2124
call fcn.0041b250
mov esi, eax
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x43796a
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov byte [ebp - 0x4c], 0
test esi, esi
je 0x437988
cmp word [esi], ax
je 0x437988
nop dword [eax]
inc eax
cmp word [esi + eax*2], 0
jne 0x437980
mov dword [ebp - 0x50], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x50]
xor ecx, ecx
mov dword [ebp - 0x54], edx
test eax, eax
jle 0x4379c6
mov ax, word [esi + ecx*2]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x54]
cmp ecx, eax
jl 0x4379b3
xor ecx, ecx
mov word [edx + eax*2], cx
mov ecx, ebx
push 0x4c2178
mov byte [ebp - 0x4c], 1
call fcn.0041b170
cmp byte [ebx + 0x30], 0
jne 0x4379e6
xor esi, esi
jmp 0x437a01
cmp word [ebx + 0x10], 8
jne 0x4379fd
push dword [ebx + 0x18]
call fcn.0048ddfc
add esp, 4
movzx esi, ax
jmp 0x437a01
movzx esi, word [ebx + 0x18]
mov edi, dword [ebp - 0x30]
push 4
mov dword [ebp - 0x2c], 0
call fcn.0048a02b
xor ecx, ecx
mov dword [ebp - 0x30], eax
add esp, 4
mov word [eax + 2], cx
mov eax, dword [ebp - 0x30]
mov word [eax], cx
test edi, edi
je 0x437a31
push edi
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x30]
mov word [eax], si
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x437b07
test si, si
je 0x437b07
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 0x28], 0
test eax, eax
jne 0x437a6b
cmp word [ecx], ax
je 0x437a68
nop dword [eax + eax]
inc eax
cmp word [ecx + eax*2], 0
jne 0x437a60
mov dword [ebp - 0x2c], eax
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
cmp word [ecx*2 + 0x4c0010], 0
jne 0x437a70
lea ebx, [ecx + eax]
mov edx, 2
xor ecx, ecx
lea eax, [ebx + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, dword [ebp - 0x30]
add esp, 4
mov edi, eax
mov ecx, edi
test edx, edx
je 0x437ac1
movzx eax, word [edx]
test ax, ax
je 0x437ac1
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x437ab0
mov esi, 0x4c0010
mov edx, 0x3a
sub esi, ecx
nop dword [eax]
mov word [ecx], dx
lea ecx, [ecx + 2]
movzx eax, word [ecx + esi]
mov edx, eax
test ax, ax
jne 0x437ad0
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x437af6
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x1e8]
mov dword [ebp - 0x30], edi
jmp 0x437b8f
mov ebx, dword [ebp - 0x1e8]
mov ecx, ebx
push 0
push 0x4c2fe4
call fcn.0041b250
mov esi, eax
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x437b2d
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov byte [ebp - 0x28], 0
test esi, esi
je 0x437b48
cmp word [esi], ax
je 0x437b48
nop dword [eax]
inc eax
cmp word [esi + eax*2], 0
jne 0x437b40
mov dword [ebp - 0x2c], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov dword [ebp - 0x30], edx
test eax, eax
jle 0x437b86
mov ax, word [esi + ecx*2]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
cmp ecx, eax
jl 0x437b73
xor ecx, ecx
mov word [edx + eax*2], cx
mov edi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x54]
mov byte [ebp - 0x28], 1
test eax, eax
je 0x43934c
cmp word [eax], 0
je 0x43934c
test edi, edi
je 0x43935c
cmp word [edi], 0
je 0x43934c
push 0
push 0x4c23a4
mov ecx, ebx
call fcn.0041b250
mov esi, eax
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x437bdd
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov byte [ebp - 0x80], 0
test esi, esi
je 0x437bf8
cmp word [esi], ax
je 0x437bf8
nop dword [eax]
inc eax
cmp word [esi + eax*2], 0
jne 0x437bf0
mov dword [ebp - 0x84], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x84]
xor ecx, ecx
mov dword [ebp - 0x88], edx
test eax, eax
jle 0x437c49
nop dword [eax]
mov ax, word [esi + ecx*2]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x84]
mov edx, dword [ebp - 0x88]
cmp ecx, eax
jl 0x437c30
xor ecx, ecx
mov word [edx + eax*2], cx
mov ecx, ebx
push 0x4c215c
mov byte [ebp - 0x80], 1
call fcn.0041b170
cmp byte [ebx + 0x30], 0
jne 0x437c75
xorps xmm0, xmm0
movlpd qword [ebp - 0x64], xmm0
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x64]
jmp 0x437c93
cmp word [ebx + 0x10], 8
jne 0x437c8d
push dword [ebx + 0x18]
call fcn.0048de1f
add esp, 4
mov edi, eax
mov esi, edx
jmp 0x437c93
mov edi, dword [ebx + 0x18]
mov esi, dword [ebx + 0x1c]
push 0x4c047c
mov ecx, ebx
call fcn.0041b170
cmp byte [ebx + 0x30], 0
jne 0x437cb5
xorps xmm0, xmm0
movlpd qword [ebp - 0x64], xmm0
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
jmp 0x437ccf
cmp word [ebx + 0x10], 8
jne 0x437cc9
push dword [ebx + 0x18]
call fcn.0048de1f
add esp, 4
jmp 0x437ccf
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
mov ecx, dword [ebp - 0x1b8]
sub eax, edi
sbb edx, esi
cmp word [ebp - 0x204], 1
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jne 0x437d2e
mov ebx, dword [ebp - 0x1d8]
mov ecx, ebx
push 0x4c2110
call fcn.0041b170
cmp byte [ebx + 0x30], 0
jne 0x437d05
xor edx, edx
jmp 0x437d20
cmp word [ebx + 0x10], 8
mov edx, dword [ebx + 0x18]
mov dword [ebp - 0x1ec], edx
jne 0x437d26
push edx
call fcn.0048ddfc
add esp, 4
mov edx, eax
mov dword [ebp - 0x1ec], edx
test dl, dl
jne 0x437e96
mov esi, dword [ebp - 0x30]
test esi, esi
jne 0x437d4d
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x30], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
mov byte [ebp - 0x28], 1
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 0
mov byte [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
test esi, esi
je 0x437d7c
cmp word [esi], cx
je 0x437d7c
inc ecx
cmp word [esi + ecx*2], 0
jne 0x437d74
xor eax, eax
nop
lea eax, [eax + 1]
cmp word [eax*2 + 0x4c2ff0], 0
jne 0x437d80
lea edi, [eax + ecx]
mov edx, 2
xor ecx, ecx
mov dword [ebp - 0x1dc], edi
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, dword [ebp - 0x20]
add esp, 4
mov ebx, eax
mov ecx, ebx
test edx, edx
je 0x437de7
movzx edi, word [edx]
test di, di
je 0x437de1
mov eax, edi
nop dword [eax + eax]
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x437dd0
mov edi, dword [ebp - 0x1dc]
test esi, esi
je 0x437e11
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x437e11
sub esi, ecx
nop word [eax + eax]
mov word [ecx], dx
add ecx, 2
movzx eax, word [esi + ecx]
mov edx, eax
test ax, ax
jne 0x437e00
mov esi, 0x4c2ff0
mov edx, 0x57
sub esi, ecx
nop dword [eax]
mov word [ecx], dx
lea ecx, [ecx + 2]
movzx eax, word [esi + ecx]
mov edx, eax
test ax, ax
jne 0x437e20
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x437e46
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], edi
mov byte [ebp - 0x18], 1
test eax, eax
je 0x437e63
push eax
call fcn.00489c73
mov ebx, dword [ebp - 0x20]
add esp, 4
test ebx, ebx
jne 0x437e7f
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov word [eax], cx
mov ebx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ecx
push ebx
mov byte [ebp - 0x18], 1
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov ebx, dword [ebp - 0x1d8]
mov byte [ebp - 0x1ec], al
mov edi, dword [ebp - 0x1f0]
mov eax, dword [ebp - 0x1cc]
lea eax, [eax + eax*2]
mov ecx, dword [edi + eax*8 + 0xc]
test ecx, ecx
je 0x437933
cmp word [ecx], 0
je 0x437933
mov byte [edi + eax*8 + 0x14], 1
mov edx, ecx
cmp byte [ebx + 0x20], 0
je 0x437ecf
mov dword [ebx + 8], 0
mov ecx, dword [ebx]
call fcn.0041a8d0
mov ecx, dword [ebx + 8]
mov edi, eax
test ecx, ecx
je 0x437ee7
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
mov ecx, edi
mov dword [ebx + 8], edi
test ecx, ecx
mov byte [ebx + 0x20], 0
setne al
mov byte [ebx + 0x30], al
test ecx, ecx
je 0x437933
push 0x4c20a4
mov ecx, ebx
call fcn.0041b170
cmp byte [ebx + 0x30], 0
jne 0x437f16
xor esi, esi
jmp 0x437f2f
cmp word [ebx + 0x10], 8
jne 0x437f2c
push dword [ebx + 0x18]
call fcn.0048ddfc
add esp, 4
mov esi, eax
jmp 0x437f2f
mov esi, dword [ebx + 0x18]
push 0x4c208c
mov ecx, ebx
call fcn.0041b170
cmp byte [ebx + 0x30], 0
jne 0x437f45
xor eax, eax
jmp 0x437f5c
cmp word [ebx + 0x10], 8
jne 0x437f59
push dword [ebx + 0x18]
call fcn.0048ddfc
add esp, 4
jmp 0x437f5c
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp - 0x1b8]
push 0
push esi
push eax
call fcn.0042f260
test eax, eax
jne 0x437f80
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4375c8
push eax
jmp 0x4375c0
push esi
lea ecx, [ebp - 0x70]
call fcn.00401f30
mov edx, dword [ebp - 0x70]
test edx, edx
jne 0x437fb5
push 2
call fcn.0048a02b
mov edx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x6c], eax
mov word [edx], ax
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x18], al
mov dword [ebp - 0x1c], eax
jmp 0x437fca
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x20], 0
mov byte [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov ecx, edx
mov dword [ebp - 0x1c4], esi
mov edi, 0x4c302c
mov dword [ebp - 0x1c8], ecx
mov dword [ebp - 0x1c0], edi
xor ebx, ebx
mov byte [ebp - 0x68], 1
nop dword [eax]
inc ebx
cmp word [ebx*2 + 0x4c3038], 0
jne 0x437ff0
test edx, edx
jne 0x438014
mov dword [ebp - 0x1c4], esi
mov dword [ebp - 0x1c0], edi
mov dword [ebp - 0x1c8], ecx
jmp 0x43803a
xor eax, eax
cmp word [edx], ax
je 0x438038
mov dword [ebp - 0x1c4], esi
mov dword [ebp - 0x1c0], edi
mov dword [ebp - 0x1c8], ecx
nop dword [eax]
inc eax
cmp word [edx + eax*2], 0
jne 0x438030
add ebx, eax
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c302c], 0
jne 0x438040
add ebx, eax
xor ecx, ecx
mov edx, 2
mov dword [ebp - 0x24], ebx
lea eax, [ebx + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, dword [ebp - 0x20]
add esp, 4
mov dword [ebp - 0x1dc], eax
mov ecx, eax
mov eax, dword [ebp - 0x1c8]
mov dword [ebp - 0x1e0], esi
mov esi, eax
test edx, edx
je 0x4380d1
mov esi, dword [ebp - 0x1c4]
mov edi, dword [ebp - 0x1c0]
mov dword [ebp - 0x1e0], esi
mov esi, eax
movzx eax, word [edx]
test ax, ax
je 0x4380d1
mov esi, dword [ebp - 0x1c4]
mov dword [ebp - 0x1e0], esi
mov esi, dword [ebp - 0x1c8]
nop dword [eax + eax]
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x4380c0
mov ebx, 0x4c3038
mov edx, 0x50
sub ebx, ecx
nop dword [eax]
mov word [ecx], dx
add ecx, 2
movzx eax, word [ebx + ecx]
mov edx, eax
test ax, ax
jne 0x4380e0
mov eax, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x24]
test eax, eax
je 0x438116
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x438116
mov word [ecx], ax
lea esi, [esi + 2]
movzx eax, word [esi]
add ecx, 2
test ax, ax
jne 0x438105
mov eax, 0x20
nop dword [eax + eax]
mov word [ecx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
lea ecx, [ecx + 2]
test ax, ax
jne 0x438120
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x438146
push eax
call fcn.00489c73
add esp, 4
mov ecx, dword [ebp - 0x1e0]
mov eax, dword [ebp - 0x1dc]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x18], 1
test ecx, ecx
je 0x43816c
push ecx
call fcn.00489c73
mov eax, dword [ebp - 0x20]
add esp, 4
test eax, eax
jne 0x438188
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1b8]
push eax
push 0xffffffffffffffb0
mov byte [ebp - 0x18], 1
lea ecx, [ecx + 0x5b0]
call fcn.0041a070
mov ecx, dword [ebp - 0x1e8]
xorps xmm0, xmm0
push 0
push 0x4c2124
movq qword [ebp - 0x94], xmm0
mov dword [ebp - 0x8c], 0
call fcn.0041b250
mov edi, eax
xor esi, esi
test edi, edi
je 0x4381dc
cmp word [edi], si
je 0x4381dc
inc esi
cmp word [edi + esi*2], 0
jne 0x4381d4
xor ecx, ecx
mov dword [ebp - 0x90], esi
lea eax, [esi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
add esp, 4
mov ebx, eax
mov dword [ebp - 0x94], ebx
test esi, esi
jle 0x438220
mov ecx, ebx
sub edi, ebx
mov edx, esi
mov ax, word [edi + ecx]
lea ecx, [ecx + 2]
mov word [ecx - 2], ax
sub edx, 1
jne 0x438210
xor eax, eax
mov byte [ebp - 0x8c], 1
mov word [ebx + esi*2], ax
mov byte [ebp - 4], 0x47
cmp word [ebx], ax
jne 0x438dff
mov edx, dword [ebp - 0x70]
test edx, edx
jne 0x438266
push 2
call fcn.0048a02b
mov edx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x6c], eax
mov word [edx], ax
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x18], al
mov dword [ebp - 0x1c], eax
jmp 0x43827b
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x20], 0
mov byte [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov ecx, edx
mov dword [ebp - 0x1c4], esi
mov edi, 0x4c302c
mov dword [ebp - 0x1c8], ecx
mov dword [ebp - 0x1c0], edi
xor ebx, ebx
mov byte [ebp - 0x68], 1
nop word [eax + eax]
inc ebx
cmp word [ebx*2 + 0x4c307c], 0
jne 0x4382a0
test edx, edx
jne 0x4382c4
mov dword [ebp - 0x1c4], esi
mov dword [ebp - 0x1c0], edi
mov dword [ebp - 0x1c8], ecx
jmp 0x4382ea
xor eax, eax
cmp word [edx], ax
je 0x4382e8
mov dword [ebp - 0x1c4], esi
mov dword [ebp - 0x1c0], edi
mov dword [ebp - 0x1c8], ecx
nop dword [eax]
inc eax
cmp word [edx + eax*2], 0
jne 0x4382e0
add ebx, eax
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c302c], 0
jne 0x4382f0
add ebx, eax
xor ecx, ecx
mov edx, 2
mov dword [ebp - 0x24], ebx
lea eax, [ebx + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, dword [ebp - 0x20]
add esp, 4
mov dword [ebp - 0x1dc], eax
mov ecx, eax
mov eax, dword [ebp - 0x1c8]
mov dword [ebp - 0x1e0], esi
mov esi, eax
test edx, edx
je 0x438381
mov esi, dword [ebp - 0x1c4]
mov edi, dword [ebp - 0x1c0]
mov dword [ebp - 0x1e0], esi
mov esi, eax
movzx eax, word [edx]
test ax, ax
je 0x438381
mov esi, dword [ebp - 0x1c4]
mov dword [ebp - 0x1e0], esi
mov esi, dword [ebp - 0x1c8]
nop dword [eax + eax]
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x438370
mov ebx, 0x4c307c
mov edx, 0x46
sub ebx, ecx
nop dword [eax]
mov word [ecx], dx
add ecx, 2
movzx eax, word [ebx + ecx]
mov edx, eax
test ax, ax
jne 0x438390
mov eax, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x24]
test eax, eax
je 0x4383c6
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x4383c6
mov word [ecx], ax
lea esi, [esi + 2]
movzx eax, word [esi]
add ecx, 2
test ax, ax
jne 0x4383b5
mov eax, 0x20
nop dword [eax + eax]
mov word [ecx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
lea ecx, [ecx + 2]
test ax, ax
jne 0x4383d0
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4383f6
push eax
call fcn.00489c73
add esp, 4
mov ecx, dword [ebp - 0x1e0]
mov eax, dword [ebp - 0x1dc]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x18], 1
test ecx, ecx
je 0x43841c
push ecx
call fcn.00489c73
mov eax, dword [ebp - 0x20]
add esp, 4
test eax, eax
jne 0x438438
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1b8]
push eax
push 0xffffffffffffffff
mov byte [ebp - 0x18], 1
lea ecx, [ecx + 0x5b0]
call fcn.0041a070
mov esi, dword [ebp - 0x1bc]
mov edi, 5
nop dword [eax + eax]
mov eax, dword [esi]
test eax, eax
je 0x43846f
push eax
call fcn.00489c73
add esp, 4
mov dword [esi], 0
mov dword [esi + 4], 0
mov byte [esi + 8], 1
add esi, 0x20
sub edi, 1
jne 0x438460
mov dword [ebp - 0x4cc], edi
xor eax, eax
mov byte [ebp - 0x4c4], 0
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4c2124], 0
jne 0x4384a0
mov dword [ebp - 0x4c8], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x4c8]
xor ecx, ecx
mov dword [ebp - 0x4cc], edx
test eax, eax
jle 0x4384fd
mov ax, word [ecx*2 + 0x4c2124]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x4c8]
mov edx, dword [ebp - 0x4cc]
cmp ecx, eax
jl 0x4384e0
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x4c4], 1
mov byte [ebp - 4], 0x48
mov esi, dword [ebp - 0x54]
test esi, esi
jne 0x43852d
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x54], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x54]
mov dword [ebp - 0x50], ecx
mov ebx, dword [ebp - 0x1f8]
mov eax, 8
push esi
mov byte [ebp - 0x4c], 1
mov word [ebp - 0x4bc], ax
call ebx
mov dword [ebp - 0x4b4], eax
test eax, eax
jne 0x438558
test esi, esi
jne 0x43a33b
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x4cc]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x49
call fcn.00401560
lea eax, [ebp - 0x4bc]
push eax
lea eax, [esi + 0x10]
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
mov edi, dword [ebp - 0x1b4]
lea eax, [ebp - 0x4bc]
push eax
mov byte [ebp - 4], 0x47
call edi
mov eax, dword [ebp - 0x4cc]
test eax, eax
je 0x4385af
push eax
call fcn.00489c73
add esp, 4
cmp dword [ebp - 0x84], 0
jne 0x4385ea
mov ecx, dword [ebp - 0x88]
test ecx, ecx
jne 0x4385cd
mov dword [ebp - 0x84], ecx
jmp 0x438710
xor eax, eax
cmp word [ecx], ax
je 0x4385dc
inc eax
cmp word [ecx + eax*2], 0
jne 0x4385d4
mov dword [ebp - 0x84], eax
test eax, eax
je 0x438710
mov dword [ebp - 0x4ec], 0
xor eax, eax
mov byte [ebp - 0x4e4], 0
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c23a4], 0
jne 0x438600
mov dword [ebp - 0x4e8], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x4e8]
xor ecx, ecx
mov dword [ebp - 0x4ec], edx
test eax, eax
jle 0x43865d
mov ax, word [ecx*2 + 0x4c23a4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x4e8]
mov edx, dword [ebp - 0x4ec]
cmp ecx, eax
jl 0x438640
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x4e4], 1
mov byte [ebp - 4], 0x4a
mov esi, dword [ebp - 0x88]
test esi, esi
jne 0x438699
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x88], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x84], ecx
mov eax, 8
mov byte [ebp - 0x80], 1
push esi
mov word [ebp - 0x4dc], ax
call ebx
mov dword [ebp - 0x4d4], eax
test eax, eax
jne 0x4386be
test esi, esi
jne 0x43a33b
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x4ec]
push eax
mov byte [ebp - 4], 0x4b
lea ecx, [esi + 0x20]
call fcn.00401560
lea ecx, [ebp - 0x4dc]
lea eax, [esi + 0x30]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
lea eax, [ebp - 0x4dc]
mov byte [ebp - 4], 0x47
push eax
call edi
mov eax, dword [ebp - 0x4ec]
test eax, eax
je 0x438710
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x24c], 0
xor eax, eax
mov byte [ebp - 0x244], 0
inc eax
cmp word [eax*2 + 0x4c30b0], 0
jne 0x438723
mov dword [ebp - 0x248], eax
xor ecx, ecx
inc eax
mov ebx, 2
mul ebx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x248]
xor ecx, ecx
mov dword [ebp - 0x24c], edx
test eax, eax
jle 0x438780
mov ax, word [ecx*2 + 0x4c30b0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x248]
mov edx, dword [ebp - 0x24c]
cmp ecx, eax
jl 0x438763
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x244], 1
xor eax, eax
mov word [ebp - 0x23c], bx
mov word [ebp - 0x234], ax
lea eax, [ebp - 0x24c]
mov byte [ebp - 4], 0x4d
push eax
lea ecx, [esi + 0x40]
call fcn.00401560
mov ebx, dword [ebp - 0x1d4]
lea ecx, [ebp - 0x23c]
lea eax, [esi + 0x50]
push ecx
push eax
call ebx
test eax, eax
js 0x43a329
lea eax, [ebp - 0x23c]
mov byte [ebp - 4], 0x47
push eax
call edi
mov eax, dword [ebp - 0x24c]
test eax, eax
je 0x4387eb
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x2e4], 0
xor eax, eax
mov dword [ebp - 0x2ec], 0
nop
inc eax
cmp word [eax*2 + 0x4c30bc], 0
jne 0x438800
mov dword [ebp - 0x2e8], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2e8]
xor ecx, ecx
mov dword [ebp - 0x2ec], edx
test eax, eax
jle 0x43885d
mov ax, word [ecx*2 + 0x4c30bc]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x2e8]
mov edx, dword [ebp - 0x2ec]
cmp ecx, eax
jl 0x438840
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x2e4], 1
mov eax, 2
mov word [ebp - 0x2dc], ax
or eax, 0xffffffff
mov word [ebp - 0x2d4], ax
lea eax, [ebp - 0x2ec]
mov byte [ebp - 4], 0x4f
push eax
lea ecx, [esi + 0x60]
call fcn.00401560
lea ecx, [ebp - 0x2dc]
lea eax, [esi + 0x70]
push ecx
push eax
call ebx
test eax, eax
js 0x43a329
lea eax, [ebp - 0x2dc]
mov byte [ebp - 4], 0x47
push eax
call edi
mov eax, dword [ebp - 0x2ec]
test eax, eax
je 0x4388c8
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x100]
test eax, eax
je 0x4388da
mov ecx, dword [eax]
push eax
mov eax, dword [ecx + 8]
call eax
mov ebx, dword [ebp - 0x1e8]
lea eax, [ebp - 0x100]
push eax
push 4
push dword [ebp - 0x1bc]
mov dword [ebp - 0x100], 0
mov edx, dword [ebx + 8]
mov ecx, dword [ebx]
push 0x4c30c8
call fcn.0041a9b0
test al, al
je 0x439388
mov esi, dword [ebp - 0x100]
lea eax, [ebp - 0x144]
mov edi, dword [ebp - 0x20c]
push eax
call edi
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0x52
push eax
call edi
test esi, esi
je 0x438994
mov eax, dword [esi]
lea ecx, [ebp - 0x144]
push 0
push 0
push ecx
mov eax, dword [eax + 0x10]
push 0
push 0x4c04c0
push esi
call eax
shr eax, 0x1f
xor al, 1
je 0x438994
cmp word [ebp - 0x144], 8
jne 0x438977
push dword [ebp - 0x13c]
call fcn.0048ddfc
add esp, 4
mov esi, eax
jmp 0x43897d
mov esi, dword [ebp - 0x13c]
lea eax, [ebp - 0x144]
push eax
call dword [ebp - 0x1b4]
test esi, esi
jne 0x439388
jmp 0x4389a1
lea eax, [ebp - 0x144]
push eax
call dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x100]
test eax, eax
je 0x4389b7
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x18], 1
test edi, edi
je 0x438aed
mov dword [ebp - 0x24], 0
push 0xc
mov byte [ebp - 4], 0x55
call fcn.00489e83
mov esi, eax
add esp, 4
mov dword [ebp - 0x5c], esi
test esi, esi
je 0x438a13
xorps xmm0, xmm0
movq qword [esi], xmm0
mov dword [esi + 8], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 1
mov dword [esi], 0
jmp 0x438a15
xor esi, esi
mov byte [ebp - 4], 0x55
mov dword [ebp - 0x24], esi
test esi, esi
je 0x43a33b
mov eax, dword [edi]
push esi
push 0
push edi
mov eax, dword [eax + 0x34]
call eax
test eax, eax
jne 0x438aad
mov esi, dword [ebp - 0x100]
lea eax, [ebp - 0x1a4]
mov edi, dword [ebp - 0x20c]
push eax
call edi
lea eax, [ebp - 0x1a4]
mov byte [ebp - 4], 0x58
push eax
call edi
test esi, esi
je 0x43937b
mov eax, dword [esi]
lea ecx, [ebp - 0x1a4]
push 0
push 0
push ecx
mov eax, dword [eax + 0x10]
push 0
push 0x4c30d8
push esi
call eax
shr eax, 0x1f
xor al, 1
je 0x43937b
cmp word [ebp - 0x1a4], 0xd
jne 0x43937b
cmp dword [ebp - 0x200], 0
jne 0x438ecf
mov ecx, dword [ebp - 0x1d8]
push 0
push 0x4c1dd8
call fcn.0041b250
mov ebx, eax
cmp ebx, 0x4bf950
je 0x438e47
test ebx, ebx
je 0x438ecf
mov esi, 0x4bf950
sub ebx, esi
movzx eax, word [ebx + esi]
mov ecx, eax
test ax, ax
jne 0x438e88
cmp word [esi], ax
jne 0x438e8d
mov eax, dword [ebp - 0x1cc]
lea ecx, [ebp - 0xc4]
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0xc]
add eax, dword [ebp - 0x1f0]
push eax
call fcn.00401560
push dword [ebp - 0x94]
call fcn.00489c73
mov eax, dword [ebp - 0x30]
add esp, 4
test eax, eax
je 0x4375c8
push eax
jmp 0x4375c0
cmp ax, word [esi]
je 0x438ec7
xor edx, edx
cmp dx, ax
jne 0x438e98
xor edi, edi
jmp 0x438ea4
push ecx
call fcn.0048dee4
add esp, 4
movzx edi, ax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x438eb4
xor eax, eax
jmp 0x438ec0
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp di, ax
jb 0x438ecf
ja 0x438ecf
add esi, 2
jmp 0x438e37
cmp byte [ebp - 0x1ec], 0
je 0x438f34
mov eax, dword [ebp - 0x1cc]
mov esi, dword [ebp - 0xb8]
lea eax, [eax + eax*2]
lea edi, [eax*8 + 0xc]
mov eax, dword [ebp - 0xb4]
add edi, dword [ebp - 0x1f0]
cmp esi, eax
jb 0x438f0c
test eax, eax
je 0x438f07
add eax, 0xa
jmp 0x438f0c
mov eax, 1
push eax
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0xb8]
call fcn.00470110
cmp dword [eax], esi
ja 0x438f25
lea ecx, [esi + 1]
mov dword [eax], ecx
mov eax, dword [eax + 8]
lea ecx, [esi + esi*2]
push edi
lea ecx, [eax + ecx*4]
call fcn.00401560
xorps xmm0, xmm0
mov dword [ebp - 0x74], 0
movq qword [ebp - 0x7c], xmm0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x7c], 0
mov byte [ebp - 0x74], 1
mov ebx, dword [ebp - 0x1e8]
mov ecx, ebx
push 0x4c2178
mov byte [ebp - 4], 0x5b
call fcn.0041b170
cmp byte [ebx + 0x30], 0
jne 0x438f75
xor esi, esi
jmp 0x438f90
cmp word [ebx + 0x10], 8
jne 0x438f8c
push dword [ebx + 0x18]
call fcn.0048ddfc
add esp, 4
movzx esi, ax
jmp 0x438f90
movzx esi, word [ebx + 0x18]
mov edi, dword [ebp - 0x7c]
push 4
mov dword [ebp - 0x78], 0
call fcn.0048a02b
xor ecx, ecx
mov dword [ebp - 0x7c], eax
add esp, 4
mov word [eax + 2], cx
mov eax, dword [ebp - 0x7c]
mov word [eax], cx
test edi, edi
je 0x438fc0
push edi
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x7c]
mov word [eax], si
mov ecx, dword [ebp - 0x7c]
test ecx, ecx
je 0x439097
test si, si
je 0x439097
mov eax, dword [ebp - 0x78]
mov byte [ebp - 0x74], 0
test eax, eax
jne 0x438ffb
cmp word [ecx], ax
je 0x438ff8
nop word [eax + eax]
inc eax
cmp word [ecx + eax*2], 0
jne 0x438ff0
mov dword [ebp - 0x78], eax
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
cmp word [ecx*2 + 0x4c0010], 0
jne 0x439000
lea edi, [ecx + eax]
mov edx, 2
xor ecx, ecx
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, dword [ebp - 0x7c]
add esp, 4
mov ebx, eax
mov ecx, ebx
test edx, edx
je 0x439053
movzx esi, word [edx]
test si, si
je 0x439053
mov eax, esi
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x439042
mov esi, 0x4c0010
mov edx, 0x3a
sub esi, ecx
nop
mov word [ecx], dx
lea ecx, [ecx + 2]
movzx eax, word [esi + ecx]
mov edx, eax
test ax, ax
jne 0x439060
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x439086
push eax
call fcn.00489c73
add esp, 4
mov dword [ebp - 0x78], edi
mov edi, dword [ebp - 0x1e8]
mov dword [ebp - 0x7c], ebx
jmp 0x43911c
mov edi, dword [ebp - 0x1e8]
mov ecx, edi
push 0
push 0x4c2fe4
call fcn.0041b250
mov esi, eax
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x4390bd
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov byte [ebp - 0x74], 0
test esi, esi
je 0x4390d8
cmp word [esi], ax
je 0x4390d8
nop dword [eax]
inc eax
cmp word [esi + eax*2], 0
jne 0x4390d0
mov dword [ebp - 0x78], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x78]
xor ecx, ecx
mov dword [ebp - 0x7c], edx
test eax, eax
jle 0x439116
mov ax, word [esi + ecx*2]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x7c]
cmp ecx, eax
jl 0x439103
xor ecx, ecx
mov word [edx + eax*2], cx
mov esi, dword [ebp - 0x30]
mov byte [ebp - 0x74], 1
test esi, esi
jne 0x43913f
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x30], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x2c], ecx
mov ebx, dword [ebp - 0x70]
mov byte [ebp - 0x28], 1
test ebx, ebx
jne 0x439161
push 2
call fcn.0048a02b
mov ebx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], eax
mov word [ebx], ax
cmp dword [ebp - 0x7c], 0
mov byte [ebp - 0x68], 1
jne 0x439180
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x7c], eax
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x78], ecx
push ebx
push dword [ebp - 0x7c]
mov byte [ebp - 0x74], 1
push esi
mov esi, dword [ebp - 0x1b8]
mov ecx, esi
call fcn.0043c000
mov edx, dword [edi + 8]
mov ebx, eax
mov ecx, dword [edi]
push 0
push 0
push 0
push 0x4c3144
mov dword [ebp - 0x1d0], ebx
call fcn.0041a9b0
mov dword [esi + 4], 0
cmp ebx, 1
jne 0x439394
mov edx, dword [ebp - 0x70]
test edx, edx
jne 0x4391ef
push 2
call fcn.0048a02b
mov edx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x6c], eax
mov word [edx], ax
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x18], al
mov dword [ebp - 0x1c], eax
jmp 0x439204
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x20], 0
mov byte [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov esi, edx
mov dword [ebp - 0x1c4], ecx
mov byte [ebp - 0x68], 1
xor edi, edi
inc edi
cmp word [edi*2 + 0x4c3150], 0
jne 0x439212
test edx, edx
jne 0x43922a
mov dword [ebp - 0x1c4], ecx
jmp 0x439241
xor eax, eax
cmp word [edx], ax
je 0x43923f
mov dword [ebp - 0x1c4], ecx
inc eax
cmp word [edx + eax*2], 0
jne 0x439237
add edi, eax
xor ecx, ecx
lea eax, [edi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, dword [ebp - 0x20]
add esp, 4
mov dword [ebp - 0x24], eax
mov ecx, eax
test edx, edx
je 0x439282
movzx eax, word [edx]
test ax, ax
je 0x439282
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x439271
mov ebx, 0x4c3150
mov edx, 0x53
sub ebx, ecx
nop
mov word [ecx], dx
add ecx, 2
movzx eax, word [ecx + ebx]
mov edx, eax
test ax, ax
jne 0x439290
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x4392c3
movzx eax, word [eax]
mov edx, eax
test ax, ax
je 0x4392c3
mov word [ecx], ax
lea esi, [esi + 2]
movzx eax, word [esi]
add ecx, 2
test ax, ax
jne 0x4392b2
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4392d8
push eax
call fcn.00489c73
add esp, 4
mov ecx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edi
mov byte [ebp - 0x18], 1
test ecx, ecx
je 0x4392fb
push ecx
call fcn.00489c73
mov eax, dword [ebp - 0x20]
add esp, 4
test eax, eax
jne 0x439317
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ecx
mov ebx, dword [ebp - 0x1b8]
push ecx
push eax
mov byte [ebp - 0x18], 1
lea ecx, [ebx + 0x5b0]
call fcn.00419f00
cmp dword [ebx], 0
jne 0x43938f
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x438e69
push eax
call fcn.00489c73
add esp, 4
jmp 0x438e69
test edi, edi
je 0x43935c
push edi
call fcn.00489c73
mov eax, dword [ebp - 0x54]
add esp, 4
mov ecx, dword [ebp - 0x88]
test ecx, ecx
je 0x439372
push ecx
call fcn.00489c73
mov eax, dword [ebp - 0x54]
add esp, 4
mov byte [ebp - 4], 0x41
jmp 0x4375e2
lea eax, [ebp - 0x1a4]
push eax
call dword [ebp - 0x1b4]
mov edi, 0xfffffff2
jmp 0x4393aa
or edi, 0xffffffff
jmp 0x43939a
mov edi, dword [ebp - 0x1d0]
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x4393aa
push eax
call fcn.00489c73
add esp, 4
push dword [ebp - 0x94]
call fcn.00489c73
mov eax, dword [ebp - 0x30]
add esp, 4
test eax, eax
je 0x4393c8
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x4393db
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x43a229
push eax
call fcn.00489c73
add esp, 4
jmp 0x43a229
or edi, 0xffffffff
jmp 0x43a229
movzx esi, word [esi + 0x18]
test si, si
je 0x4394a8
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x439419
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x40], 0
xor eax, eax
nop
inc eax
cmp word [eax*2 + 0x4c0540], 0
jne 0x439420
mov dword [ebp - 0x44], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x44]
xor ecx, ecx
mov dword [ebp - 0x48], edx
test eax, eax
jle 0x439477
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4c0540]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x48]
cmp ecx, eax
jl 0x439460
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x48]
mov byte [ebp - 0x40], 1
test eax, eax
jne 0x4394a0
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x48], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x44], ecx
mov word [eax], si
jmp 0x4395ef
lea ecx, [ebp - 0x48]
call fcn.0041e280
mov byte [ebp - 0x304], 0
xor eax, eax
mov dword [ebp - 0x30c], 0
inc eax
cmp word [eax*2 + 0x4c31f4], 0
jne 0x4394c3
mov dword [ebp - 0x308], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x308]
xor ecx, ecx
mov dword [ebp - 0x30c], edx
test eax, eax
jle 0x439520
mov ax, word [ecx*2 + 0x4c31f4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x308]
mov edx, dword [ebp - 0x30c]
cmp ecx, eax
jl 0x439503
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x304], 1
mov byte [ebp - 4], 0x65
mov esi, dword [ebp - 0x48]
test esi, esi
jne 0x439550
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x48], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x44], ecx
mov eax, 8
mov byte [ebp - 0x40], 1
push esi
mov word [ebp - 0x2fc], ax
call dword [ebp - 0x1f8]
mov dword [ebp - 0x2f4], eax
test eax, eax
jne 0x439579
test esi, esi
jne 0x43a33b
mov ebx, dword [ebp - 0x1bc]
lea eax, [ebp - 0x30c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x66
call fcn.00401560
lea ecx, [ebp - 0x2fc]
lea eax, [ebx + 0x10]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a34b
lea eax, [ebp - 0x2fc]
mov byte [ebp - 4], 0x64
push eax
call dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x30c]
test eax, eax
je 0x4395ce
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x1b8]
push 0
push 1
push ebx
mov edx, dword [eax + 0x170]
mov ecx, dword [eax + 0x168]
push 0x4c320c
call fcn.0041a9b0
mov ecx, dword [ebp - 0x48]
test ecx, ecx
jne 0x439619
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x48], eax
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov word [eax], cx
mov dword [ebp - 0x44], ecx
mov byte [ebp - 0x5c], cl
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp - 0x48]
jmp 0x43962b
mov dword [ebp - 0x64], 0
mov byte [ebp - 0x5c], 0
mov dword [ebp - 0x60], 0
mov esi, ecx
mov byte [ebp - 0x40], 1
mov ebx, 0x4c3228
xor edi, edi
nop dword [eax + eax]
inc edi
cmp word [edi*2 + 0x4c323c], 0
jne 0x439640
test ecx, ecx
je 0x439661
xor eax, eax
cmp word [ecx], ax
je 0x43965f
inc eax
cmp word [ecx + eax*2], 0
jne 0x439657
add edi, eax
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c3228], 0
jne 0x439663
add edi, eax
xor ecx, ecx
mov edx, 2
mov dword [ebp - 0x24], edi
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edi, 0x4c323c
mov dword [ebp - 0x1cc], eax
add esp, 4
mov ecx, eax
mov edx, 0x20
sub edi, eax
mov word [ecx], dx
add ecx, 2
movzx eax, word [edi + ecx]
mov edx, eax
test ax, ax
jne 0x4396a4
mov edi, dword [ebp - 0x24]
test esi, esi
je 0x4396d7
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x4396d7
mov word [ecx], ax
lea esi, [esi + 2]
movzx eax, word [esi]
add ecx, 2
test ax, ax
jne 0x4396c6
mov eax, 0x20
nop dword [eax]
mov word [ecx], ax
lea ebx, [ebx + 2]
movzx eax, word [ebx]
lea ecx, [ecx + 2]
test ax, ax
jne 0x4396e0
mov ebx, dword [ebp - 0x1cc]
xor eax, eax
mov word [ecx], ax
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], edi
mov byte [ebp - 0x5c], 1
jmp 0x43970a
xor ebx, ebx
mov edi, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0xb8]
xor ecx, ecx
mov dword [ebp - 0x1c4], ecx
test eax, eax
je 0x43a06d
mov edx, dword [ebp - 0x1bc]
add edi, 0x1a0
add edx, 0x10
mov dword [ebp - 0x1d8], edi
mov dword [ebp - 0x1e0], edx
cmp eax, ecx
ja 0x43974e
lea eax, [ecx + 1]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb0]
lea ecx, [ecx + ecx*2]
cmp dword [eax + ecx*4], 0
lea esi, [eax + ecx*4]
jne 0x439774
push 2
call fcn.0048a02b
add esp, 4
mov dword [esi], eax
xor ecx, ecx
mov word [eax], cx
mov dword [esi + 4], ecx
mov byte [esi + 8], 1
cmp byte [edi + 0x20], 0
mov edx, dword [esi]
je 0x439787
mov dword [edi + 8], 0
mov ecx, dword [edi]
call fcn.0041a8d0
mov ecx, dword [edi + 8]
mov esi, eax
test ecx, ecx
je 0x43979f
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 8]
call eax
test esi, esi
mov dword [edi + 8], esi
mov byte [edi + 0x20], 0
setne al
mov byte [edi + 0x30], al
cmp dword [edi + 8], 0
je 0x43a052
push 0x4c2178
mov ecx, edi
call fcn.0041b170
cmp byte [edi + 0x30], 0
jne 0x4397df
lea ecx, [ebp - 0x3c]
xor esi, esi
call fcn.0041e280
mov dword [ebp - 0x32c], esi
jmp 0x4398c6
cmp word [edi + 0x10], 8
jne 0x4397f6
push dword [edi + 0x18]
call fcn.0048ddfc
add esp, 4
movzx ebx, ax
jmp 0x4397fa
movzx ebx, word [edi + 0x18]
mov dword [ebp - 0x1ec], ebx
movzx esi, bx
test bx, bx
je 0x4398b4
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x43981c
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x34], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c0540], 0
jne 0x439822
mov dword [ebp - 0x38], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x38]
xor ecx, ecx
mov dword [ebp - 0x3c], edx
test eax, eax
jle 0x439877
nop dword [eax]
mov ax, word [ecx*2 + 0x4c0540]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x3c]
cmp ecx, eax
jl 0x439860
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x3c]
mov byte [ebp - 0x34], 1
test eax, eax
jne 0x4398a0
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x3c], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x38], ecx
mov esi, dword [ebp - 0x1b4]
mov word [eax], bx
mov ebx, dword [ebp - 0x1e0]
jmp 0x439a0d
lea ecx, [ebp - 0x3c]
call fcn.0041e280
mov dword [ebp - 0x32c], 0
mov byte [ebp - 0x324], 0
xor eax, eax
nop
inc eax
movzx edi, si
cmp word [eax*2 + 0x4c31f4], 0
jne 0x4398d0
mov dword [ebp - 0x328], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x328]
xor ecx, ecx
mov dword [ebp - 0x32c], edx
mov ebx, edi
mov dword [ebp - 0x1ec], ebx
test eax, eax
jle 0x439940
mov eax, edi
mov dword [ebp - 0x1ec], eax
mov ax, word [ecx*2 + 0x4c31f4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x328]
mov edx, dword [ebp - 0x32c]
cmp ecx, eax
jl 0x439923
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x324], 1
mov byte [ebp - 4], 0x67
mov esi, dword [ebp - 0x3c]
test esi, esi
jne 0x439970
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x3c], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x38], ecx
mov eax, 8
mov byte [ebp - 0x34], 1
push esi
mov word [ebp - 0x31c], ax
call dword [ebp - 0x1f8]
mov dword [ebp - 0x314], eax
test eax, eax
jne 0x439999
test esi, esi
jne 0x43a33b
mov edi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x32c]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x68
call fcn.00401560
mov ebx, dword [ebp - 0x1e0]
lea eax, [ebp - 0x31c]
push eax
push ebx
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
mov esi, dword [ebp - 0x1b4]
lea eax, [ebp - 0x31c]
push eax
mov byte [ebp - 4], 0x64
call esi
mov eax, dword [ebp - 0x32c]
test eax, eax
je 0x4399f3
push eax
call fcn.00489c73
add esp, 4
push 0
push 1
push edi
mov edi, dword [ebp - 0x1d8]
push 0x4c320c
mov edx, dword [edi + 8]
mov ecx, dword [edi]
call fcn.0041a9b0
cmp dword [ebp - 0x200], 0
je 0x439c5b
mov dword [ebp - 0x50c], 0
xor eax, eax
mov byte [ebp - 0x504], 0
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c2110], 0
jne 0x439a30
mov dword [ebp - 0x508], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x508]
xor ecx, ecx
mov dword [ebp - 0x50c], edx
test eax, eax
jle 0x439a8d
mov ax, word [ecx*2 + 0x4c2110]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x508]
mov edx, dword [ebp - 0x50c]
cmp ecx, eax
jl 0x439a70
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x504], 1
mov eax, 2
mov word [ebp - 0x4fc], ax
or eax, 0xffffffff
mov word [ebp - 0x4f4], ax
mov ecx, dword [ebp - 0x1bc]
lea eax, [ebp - 0x50c]
push eax
mov byte [ebp - 4], 0x6a
call fcn.00401560
lea eax, [ebp - 0x4fc]
push eax
push ebx
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
lea eax, [ebp - 0x4fc]
mov byte [ebp - 4], 0x64
push eax
call esi
mov eax, dword [ebp - 0x50c]
test eax, eax
je 0x439afc
push eax
call fcn.00489c73
add esp, 4
mov edx, dword [edi + 8]
mov ecx, dword [edi]
push 0
push 1
push dword [ebp - 0x1bc]
push 0x4c3248
call fcn.0041a9b0
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
jne 0x439b3f
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x3c], eax
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov word [eax], cx
mov dword [ebp - 0x38], ecx
mov byte [ebp - 0x5c], cl
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp - 0x3c]
jmp 0x439b51
mov dword [ebp - 0x64], 0
mov byte [ebp - 0x5c], 0
mov dword [ebp - 0x60], 0
mov edx, dword [ebp - 0x1cc]
mov esi, ecx
mov edi, 0x4c3264
mov byte [ebp - 0x34], 1
xor ebx, ebx
inc ebx
cmp word [ebx*2 + 0x4c323c], 0
jne 0x439b64
test ecx, ecx
je 0x439b8a
xor eax, eax
cmp word [ecx], ax
je 0x439b88
nop dword [eax + eax]
inc eax
cmp word [ecx + eax*2], 0
jne 0x439b80
add ebx, eax
xor eax, eax
nop dword [eax]
inc eax
mov dword [ebp - 0x1dc], edx
cmp word [eax*2 + 0x4c3264], 0
jne 0x439b90
add ebx, eax
xor ecx, ecx
mov edx, 2
mov dword [ebp - 0x24], ebx
lea eax, [ebx + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov ebx, 0x4c323c
mov dword [ebp - 0x1cc], eax
add esp, 4
mov ecx, eax
mov edx, 0x20
sub ebx, eax
nop word [eax + eax]
mov word [ecx], dx
add ecx, 2
movzx eax, word [ebx + ecx]
mov edx, eax
test ax, ax
jne 0x439be0
mov ebx, dword [ebp - 0x24]
test esi, esi
je 0x439c13
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x439c13
mov word [ecx], ax
lea esi, [esi + 2]
movzx eax, word [esi]
add ecx, 2
test ax, ax
jne 0x439c02
mov eax, 0x20
nop dword [eax + eax]
mov word [ecx], ax
lea edi, [edi + 2]
movzx eax, word [edi]
lea ecx, [ecx + 2]
test ax, ax
jne 0x439c20
mov edi, dword [ebp - 0x1cc]
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x1dc]
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x60], ebx
mov byte [ebp - 0x5c], 1
test eax, eax
je 0x439c61
push eax
call fcn.00489c73
add esp, 4
jmp 0x439c61
mov edi, dword [ebp - 0x1cc]
test edi, edi
jne 0x439c82
push 2
call fcn.0048a02b
mov edi, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x1cc], edi
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x60], eax
mov word [edi], ax
mov esi, dword [ebp - 0x3c]
mov byte [ebp - 0x5c], 1
test esi, esi
jne 0x439ca5
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x3c], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0xa0]
mov byte [ebp - 0x34], 1
test ecx, ecx
jne 0x439cd0
push 2
call fcn.0048a02b
mov ecx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0x9c], eax
mov word [ecx], ax
mov eax, dword [ebp - 0x1f4]
mov ebx, 0x4c3278
mov dword [ebp - 0x24], eax
xor eax, eax
mov byte [ebp - 0x98], 1
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x1dc], edi
mov byte [ebp - 0x8c], 0
mov dword [ebp - 0x90], 0
test ecx, ecx
je 0x439d19
cmp word [ecx], ax
je 0x439d19
inc eax
cmp word [ecx + eax*2], 0
jne 0x439d11
xor ecx, ecx
nop dword [eax + eax]
inc ecx
cmp word [ecx*2 + 0x4c328c], 0
jne 0x439d20
add ecx, eax
test esi, esi
je 0x439d4a
xor eax, eax
cmp word [esi], ax
je 0x439d48
nop dword [eax]
inc eax
cmp word [esi + eax*2], 0
jne 0x439d40
add ecx, eax
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c3278], 0
jne 0x439d50
add ecx, eax
test edi, edi
je 0x439d7a
xor eax, eax
cmp word [edi], ax
je 0x439d78
nop dword [eax]
inc eax
cmp word [edi + eax*2], 0
jne 0x439d70
add ecx, eax
lea eax, [ecx + 1]
mov dword [ebp - 0x204], ecx
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov dword [ebp - 0x1f4], eax
mov edx, eax
mov eax, dword [ebp - 0xa0]
add esp, 4
test eax, eax
je 0x439dd1
movzx ecx, word [eax]
mov edi, ecx
test cx, cx
je 0x439dd1
mov edi, eax
sub edi, edx
nop dword [eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edx + edi]
mov ecx, eax
test ax, ax
jne 0x439dc0
mov edi, 0x4c328c
mov ecx, 0x5c
sub edi, edx
nop dword [eax]
mov word [edx], cx
add edx, 2
movzx eax, word [edi + edx]
mov ecx, eax
test ax, ax
jne 0x439de0
test esi, esi
je 0x439e11
movzx eax, word [esi]
mov ecx, eax
test ax, ax
je 0x439e11
nop
mov word [edx], ax
lea esi, [esi + 2]
movzx eax, word [esi]
add edx, 2
test ax, ax
jne 0x439e00
mov eax, 0x5c
mov word [edx], ax
lea ebx, [ebx + 2]
movzx eax, word [ebx]
add edx, 2
test ax, ax
jne 0x439e16
mov ebx, dword [ebp - 0x1cc]
test ebx, ebx
je 0x439e5d
movzx eax, word [ebx]
mov ecx, eax
test ax, ax
je 0x439e5d
nop dword [eax + eax]
mov word [edx], ax
add edx, 2
mov eax, dword [ebp - 0x1dc]
add eax, 2
mov dword [ebp - 0x1dc], eax
movzx eax, word [eax]
test ax, ax
jne 0x439e40
mov esi, dword [ebp - 0x1f4]
xor eax, eax
mov word [edx], ax
mov eax, dword [ebp - 0x204]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x94], esi
test eax, eax
je 0x439e8a
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0xa0]
mov byte [ebp - 0x8c], 1
test eax, eax
jne 0x439eb6
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0xa0], eax
xor ecx, ecx
mov dword [ebp - 0x9c], ecx
mov word [eax], cx
push 1
push 0
push eax
mov edx, esi
mov byte [ebp - 0x98], 1
call fcn.004082b0
test eax, eax
je 0x439ed4
mov ecx, 0xfffffff0
jmp 0x439ef2
mov eax, dword [ebp - 0x1b8]
push ecx
add eax, 0x5b0
push 0x4c32a8
mov ecx, eax
call fcn.00419f00
mov ecx, dword [ebp - 0x1d0]
xor al, al
mov dword [ebp - 0x52c], 0
mov byte [ebp - 0x524], al
xor eax, eax
nop word [eax + eax]
inc eax
mov esi, ecx
cmp word [eax*2 + 0x4c31f4], 0
jne 0x439f10
mov dword [ebp - 0x528], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
mov dword [ebp - 0x1d0], esi
mov eax, dword [ebp - 0x528]
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x52c], edx
test eax, eax
jle 0x439f7d
mov dword [ebp - 0x1d0], esi
nop
mov ax, word [ecx*2 + 0x4c31f4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x528]
mov edx, dword [ebp - 0x52c]
cmp ecx, eax
jl 0x439f60
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x524], 1
mov byte [ebp - 4], 0x6b
mov esi, dword [ebp - 0x3c]
test esi, esi
jne 0x439fad
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x3c], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x38], ecx
mov eax, 8
mov byte [ebp - 0x34], 1
push esi
mov word [ebp - 0x51c], ax
call dword [ebp - 0x1f8]
mov dword [ebp - 0x514], eax
test eax, eax
jne 0x439fd6
test esi, esi
jne 0x43a351
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x52c]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x6c
call fcn.00401560
mov edx, dword [ebp - 0x1e0]
lea eax, [ebp - 0x51c]
push eax
push edx
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a329
lea eax, [ebp - 0x51c]
mov byte [ebp - 4], 0x64
push eax
call dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x52c]
test eax, eax
je 0x43a02e
push eax
call fcn.00489c73
add esp, 4
cmp word [ebp - 0x1ec], 0
mov edi, dword [ebp - 0x1d8]
jne 0x43a052
mov edx, dword [edi + 8]
mov ecx, dword [edi]
push 0
push 1
push esi
push 0x4c32f4
call fcn.0041a9b0
mov ecx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0xb8]
inc ecx
mov dword [ebp - 0x1c4], ecx
cmp eax, ecx
ja 0x43974e
mov dword [ebp - 0x54c], 0
xor eax, eax
mov byte [ebp - 0x544], 0
inc eax
cmp word [eax*2 + 0x4c31f4], 0
jne 0x43a080
mov dword [ebp - 0x548], eax
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x548]
xor ecx, ecx
mov dword [ebp - 0x54c], edx
test eax, eax
jle 0x43a0dd
mov ax, word [ecx*2 + 0x4c31f4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x548]
mov edx, dword [ebp - 0x54c]
cmp ecx, eax
jl 0x43a0c0
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x544], 1
mov byte [ebp - 4], 0x6d
mov esi, dword [ebp - 0x48]
test esi, esi
jne 0x43a10d
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x48], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x44], ecx
mov eax, 8
mov byte [ebp - 0x40], 1
push esi
mov word [ebp - 0x53c], ax
call dword [ebp - 0x1f8]
mov dword [ebp - 0x534], eax
test eax, eax
jne 0x43a136
test esi, esi
jne 0x43a351
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x54c]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x6e
call fcn.00401560
lea ecx, [ebp - 0x53c]
lea eax, [esi + 0x10]
push ecx
push eax
call dword [ebp - 0x1d4]
test eax, eax
js 0x43a35b
lea eax, [ebp - 0x53c]
mov byte [ebp - 4], 0x64
push eax
call dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x54c]
test eax, eax
je 0x43a18b
push eax
call fcn.00489c73
add esp, 4
cmp dword [ebp - 0x48], 0
jne 0x43a1a6
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x48], eax
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x48]
cmp word [eax], 0
je 0x43a1d0
mov eax, dword [ebp - 0x1b8]
push 0
push 1
push esi
mov edx, dword [eax + 0x170]
mov ecx, dword [eax + 0x168]
push 0x4c32f4
call fcn.0041a9b0
test ebx, ebx
je 0x43a1dd
push ebx
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x1f4]
test eax, eax
je 0x43a1f0
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x43a203
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x43a213
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x43a223
push eax
call fcn.00489c73
add esp, 4
mov edi, dword [ebp - 0x1d0]
mov esi, dword [ebp - 0xb0]
test esi, esi
je 0x43a261
push 0x401610
mov byte [ebp - 4], 0x6f
push dword [esi - 4]
push 0xc
push esi
call fcn.00489f08
mov eax, dword [esi - 4]
lea ecx, [esi - 4]
lea eax, [eax + eax*2]
lea eax, [eax*4 + 4]
push eax
push ecx
call fcn.00489c78
add esp, 8
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x43a274
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x43a284
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x1f0]
test eax, eax
je 0x43a2ba
push 0x4702e0
lea esi, [eax - 4]
mov byte [ebp - 4], 0x70
push dword [esi]
push 0x18
push eax
call fcn.00489f08
mov eax, dword [esi]
lea eax, [eax + eax*2]
lea eax, [eax*8 + 4]
push eax
push esi
call fcn.00489c78
add esp, 8
mov eax, dword [ebp - 0x1fc]
test eax, eax
je 0x43a2cd
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x208]
test eax, eax
je 0x435105
push eax
call fcn.00489c73
add esp, 4
jmp 0x435105
mov dword [ebp - 0x1d0], 0
mov edi, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x43a309
push ecx
call fcn.00489c73
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00489c65
mov esp, ebp
pop ebp
ret 4
push eax
call fcn.00489900
push eax
call fcn.00489900
push eax
call fcn.00489900
push 0x8007000e
call fcn.00489900
push eax
call fcn.00489900
push eax
call fcn.00489900
push 0x8007000e
call fcn.00489900
push eax
call fcn.00489900
int3