Function at 0x469ff0
Capabilities:
Get common file path

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49f046
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x3c8
mov eax, dword [0x4d7200]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x364], esi
mov eax, dword [esi + 0xbc]
lea ecx, [esi + 0x2e8]
cmp eax, 0xffffffff
jne 0x46a04c
mov eax, dword [ecx]
mov edx, dword [esi + 0x2e4]
test edx, edx
je 0x46e3c9
cmp eax, 1
jl 0x46e3c9
cmp eax, dword [ecx]
jg 0x46e3c9
lea eax, [eax + eax*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x46e3c9
cmp dword [edx + eax*8], 0xf
jne 0x46e3c9
push 2
push 0xffffffffffffffff
push 0x100c
push dword [edx + eax*8 + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edi, eax
test edi, edi
js 0x46e3c9
push ecx
push dword [esi + 0xd8]
lea ecx, [esi + 0x2a8]
call fcn.00416520
lea ecx, [esi + 0x2a8]
test eax, eax
jns 0x46a0d4
push ecx
push 0x1c2
push 0x96
push ecx
push 0
push 0x4c93c0
jmp 0x46e3e2
xorps xmm0, xmm0
mov dword [ebp - 0x20], 0
movq qword [ebp - 0x28], xmm0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0
mov byte [ebp - 0x20], 1
mov dword [ebp - 4], 0
movq qword [ebp - 0x84], xmm0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x84], 0
mov byte [ebp - 0x7c], 1
movq qword [ebp - 0x64], xmm0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x64], 0
mov byte [ebp - 0x5c], 1
movq qword [ebp - 0x78], xmm0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x78], 0
mov byte [ebp - 0x70], 1
push 4
push eax
mov byte [ebp - 4], 3
push dword [esi + 0xd8]
call fcn.00416470
mov esi, eax
mov eax, dword [ebp - 0x84]
test esi, esi
jne 0x46a1d7
test eax, eax
je 0x46a187
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x7c], 0
mov dword [ebp - 0x80], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x80]
xor ecx, ecx
mov dword [ebp - 0x84], edx
test eax, eax
jle 0x46a1c6
nop dword [eax]
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x84]
cmp ecx, eax
jl 0x46a1b0
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x80]
mov esi, dword [ebp - 0x84]
jmp 0x46a1ef
test eax, eax
je 0x46a1e4
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x80], eax
mov byte [ebp - 0x7c], 1
test esi, esi
je 0x46e357
test eax, eax
jne 0x46a211
cmp word [esi], ax
je 0x46a20c
inc eax
cmp word [esi + eax*2], 0
jne 0x46a204
mov dword [ebp - 0x80], eax
test eax, eax
jle 0x46e357
push esi
mov byte [ebp - 0x7c], 1
call fcn.0048ddfc
add esp, 4
mov dword [ebp - 0x35c], eax
cmp eax, 1
jl 0x46e35b
push 3
push edi
mov edi, dword [ebp - 0x364]
push dword [edi + 0xbc]
lea ecx, [edi + 0x2a8]
call fcn.00416470
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x46a2a7
test eax, eax
je 0x46a263
push eax
call fcn.00489c73
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x46a299
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x46a286
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
jmp 0x46a2bc
test eax, eax
je 0x46a2b4
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 1
test esi, esi
je 0x46a2f0
test eax, eax
jne 0x46a2dd
cmp word [esi], ax
je 0x46a2d8
nop dword [eax]
inc eax
cmp word [esi + eax*2], 0
jne 0x46a2d0
mov dword [ebp - 0x24], eax
test eax, eax
jle 0x46a2f0
push esi
mov byte [ebp - 0x20], 1
call fcn.0048ddfc
add esp, 4
mov esi, eax
jmp 0x46a2f6
mov byte [ebp - 0x20], 0
xor esi, esi
mov ecx, edi
call fcn.0042eef0
push 1
push dword [ebp - 0x35c]
add edi, 0x2a8
push esi
mov esi, dword [ebp - 0x364]
mov ecx, esi
call fcn.0042f260
test eax, eax
jne 0x46a336
push ecx
push 0x1c2
push 0x96
push edi
push eax
push 0x4cb128
mov ecx, esi
jmp 0x46e37a
xorps xmm0, xmm0
movups xmmword [ebp - 0x328], xmm0
movups xmmword [ebp - 0x318], xmm0
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x44]
mov dword [ebp - 0x328], 0
push ecx
push 0
mov byte [ebp - 4], 4
movaps xmm0, xmmword [0x4cd010]
push eax
push ecx
push edi
lea ecx, [ebp - 0x328]
mov dword [ebp - 0x310], 0xd
movups xmmword [ebp - 0x320], xmm0
mov dword [ebp - 0x30c], 0
call fcn.00417480
push 0x4c2178
lea ecx, [esi + 0x168]
mov byte [ebp - 4], 5
call fcn.0041b170
cmp byte [esi + 0x198], 0
mov edi, 2
je 0x46a477
cmp word [esi + 0x178], 8
jne 0x46a3d1
push dword [esi + 0x180]
call fcn.0048ddfc
add esp, 4
movzx esi, ax
jmp 0x46a3d8
movzx esi, word [esi + 0x180]
xor eax, eax
cmp ax, si
je 0x46a477
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x46a3f3
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x5c], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c0540], 0
jne 0x46a400
mov dword [ebp - 0x60], eax
xor ecx, ecx
inc eax
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x60]
xor ecx, ecx
mov dword [ebp - 0x64], edx
test eax, eax
jle 0x46a449
mov ax, word [ecx*2 + 0x4c0540]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x64]
cmp ecx, eax
jl 0x46a432
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x64]
mov byte [ebp - 0x5c], 1
test eax, eax
jne 0x46a472
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x64], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x60], ecx
mov word [eax], si
jmp 0x46a47f
lea ecx, [ebp - 0x64]
call fcn.0041e280
mov esi, dword [ebp - 0x364]
push dword [esi + 0x4d8]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x46a49d
mov edi, dword [esi + 0x4d8]
jmp 0x46a49f
xor edi, edi
push 0x268
lea eax, [ebp - 0x308]
push 0
push eax
call fcn.0048b770
add esp, 0xc
mov word [ebp - 0x2d0], 0
mov dword [ebp - 0x1f4], 0
mov dword [ebp - 0x1f8], 0
mov byte [ebp - 0x1f0], 1
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x308]
push 1
mov dword [ebp - 0x1ec], 0
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0
call fcn.00417000
push ecx
push edi
push 0xffffffffffffffff
push SysReAllocString
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x1c2
push 0x258
add esi, 0x22c
lea eax, [ebp - 0x308]
push 0x4cb1ac
cmovne eax, esi
lea ecx, [ebp - 0x308]
push 0x4c3cf8
mov dword [ebp - 0x148], eax
call fcn.0040bf80
push ecx
push 0xc
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xff000000
push 0x1c2
push 0x258
lea ecx, [ebp - 0x308]
mov byte [ebp - 4], 7
call fcn.004167f0
mov eax, dword [ebp - 0xd8]
test edi, edi
mov edi, dword [ebp - 0x364]
mov dword [ebp - 0x35c], eax
je 0x46a5da
xor esi, esi
add edi, 0x2f8
mov eax, dword [edi]
test eax, eax
je 0x46a5b8
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x46a5b8
inc esi
add edi, 4
cmp esi, 0x30
jl 0x46a596
mov edi, dword [ebp - 0x364]
jmp 0x46a5da
mov edi, dword [ebp - 0x364]
mov eax, dword [ebp - 0x35c]
mov dword [edi + esi*4 + 0x2f8], eax
inc esi
cmp esi, dword [edi + 0x2f4]
jle 0x46a5da
mov dword [edi + 0x2f4], esi
movsd xmm0, qword [0x4cc780]
xor eax, eax
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe0], 0xffffff
movsd qword [ebp - 0x198], xmm0
mov dword [ebp - 0x190], 0x2bc
mov byte [ebp - 0x18c], 1
mov byte [ebp - 0x14a], 0
nop dword [eax + eax]
inc eax
cmp word [eax*2 + 0x4bff50], 0
jne 0x46a620
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x18a]
push 0x20
push eax
call fcn.0048cf13
add esp, 0x10
mov dword [ebp - 0x118], 0x1400
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46a6ca
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x1c
push 0x24e
push 5
and eax, 1
push 5
shl eax, 0x11
add eax, 0x50000300
push eax
push 0x4cb1cc
push 0x4c018c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x46a6ca
push eax
push 0xd
lea ecx, [ebp - 0x308]
call fcn.00416ab0
movaps xmm0, xmmword [0x4cce70]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x2cc]
movups xmmword [eax + ecx*8 + 0x24], xmm0
movsd xmm0, qword [0x4cc770]
xor eax, eax
movsd qword [ebp - 0x198], xmm0
mov dword [ebp - 0x190], 0x190
mov byte [ebp - 0x18c], 1
mov byte [ebp - 0x14a], 0
inc eax
cmp word [eax*2 + 0x4bff50], 0
jne 0x46a6f4
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x18a]
push 0x20
push eax
call fcn.0048cf13
add esp, 0x10
mov dword [ebp - 0x118], 0x400
lea ecx, [edi + 0x1a0]
push 0
push 0x4c2124
call fcn.0041b250
mov esi, eax
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46a746
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov byte [ebp - 0x20], 0
test esi, esi
je 0x46a75d
cmp word [esi], ax
je 0x46a75d
inc eax
cmp word [esi + eax*2], 0
jne 0x46a755
mov dword [ebp - 0x24], 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 - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x46a7a3
nop dword [eax + eax]
mov ax, word [esi + ecx*2]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x46a790
xor ecx, ecx
mov word [edx + eax*2], cx
mov edi, dword [ebp - 0x28]
mov byte [ebp - 0x20], 1
cmp edi, 0x4c80bc
jne 0x46a7c4
mov byte [ebp - 0x380], 1
jmp 0x46a843
test edi, edi
je 0x46a83d
mov esi, 0x4c80bc
nop dword [eax]
movzx eax, word [edi]
mov ecx, eax
test ax, ax
jne 0x46a7e1
cmp word [esi], ax
je 0x46a7b8
jmp 0x46a7e6
cmp ax, word [esi]
je 0x46a82c
xor edx, edx
cmp dx, ax
jne 0x46a7f5
mov dword [ebp - 0x37c], edx
jmp 0x46a807
push ecx
call fcn.0048dee4
movzx eax, ax
add esp, 4
mov dword [ebp - 0x37c], eax
movzx eax, word [esi]
xor edx, edx
mov ecx, eax
cmp dx, ax
jne 0x46a817
xor eax, eax
jmp 0x46a823
push ecx
call fcn.0048dee4
add esp, 4
movzx eax, ax
cmp word [ebp - 0x37c], ax
jne 0x46a834
add edi, 2
add esi, 2
jmp 0x46a7d0
mov byte [ebp - 0x380], 0
jmp 0x46a843
mov byte [ebp - 0x380], cl
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46a8bc
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x12
push 0x37
push 0x32
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4cb1f4
push 0x4c018c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x46a8bc
push eax
push 0xd
lea ecx, [ebp - 0x308]
call fcn.00416ab0
movaps xmm0, xmmword [0x4cc970]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x2cc]
movups xmmword [eax + ecx*8 + 0x24], xmm0
mov ecx, dword [ebp - 0x364]
push 0
push 0x4c2fe4
add ecx, 0x1a0
call fcn.0041b250
mov esi, eax
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x46a8e6
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov byte [ebp - 0x70], 0
test esi, esi
je 0x46a8fd
cmp word [esi], ax
je 0x46a8fd
inc eax
cmp word [esi + eax*2], 0
jne 0x46a8f5
mov dword [ebp - 0x74], eax
xor ecx, ecx
inc eax
mov edi, 2
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x74]
xor ecx, ecx
mov dword [ebp - 0x78], edx
test eax, eax
jle 0x46a943
nop dword [eax + eax]
mov ax, word [esi + ecx*2]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x78]
cmp ecx, eax
jl 0x46a930
xor ecx, ecx
mov word [edx + eax*2], cx
mov esi, dword [ebp - 0x78]
mov byte [ebp - 0x70], 1
test esi, esi
jne 0x46a96c
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x78], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x78]
mov dword [ebp - 0x74], ecx
mov eax, dword [ebp - 0x28]
mov byte [ebp - 0x70], 1
test eax, eax
je 0x46a980
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov byte [ebp - 0x20], 0
test esi, esi
je 0x46a998
cmp word [esi], ax
je 0x46a998
nop
inc eax
cmp word [esi + eax*2], 0
jne 0x46a990
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x46a9d3
nop
mov ax, word [esi + ecx*2]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x46a9c0
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x24]
mov byte [ebp - 0x20], cl
test eax, eax
jne 0x46a9fb
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x46a9f8
cmp word [ecx], ax
je 0x46a9f8
nop
inc eax
cmp word [ecx + eax*2], 0
jne 0x46a9f0
mov dword [ebp - 0x24], eax
xor ecx, ecx
nop dword [eax]
inc ecx
cmp word [ecx*2 + 0x4bffa0], 0
jne 0x46aa00
add eax, ecx
xor ecx, ecx
mov dword [ebp - 0x37c], eax
inc eax
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, dword [ebp - 0x28]
mov edi, 0x4bffa0
add esp, 4
mov dword [ebp - 0x35c], eax
mov ecx, eax
mov esi, 0x20
sub edi, eax
mov word [ecx], si
add ecx, 2
movzx eax, word [ecx + edi]
mov esi, eax
test ax, ax
jne 0x46aa40
cmp dword [ebp - 0x28], 0
je 0x46aa72
movzx eax, word [edx]
mov esi, eax
test ax, ax
je 0x46aa72
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x46aa61
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46aa87
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x37c]
lea ecx, [ebp - 0x308]
mov esi, dword [ebp - 0x35c]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 1
call fcn.00416d40
test al, al
je 0x46ab1e
test byte [ebp - 0xc0], 1
mov eax, 0x50020880
push 0
push dword [ebp - 0x1ec]
mov ecx, 0x50000880
cmovne ecx, eax
mov eax, dword [ebp - 0x2c8]
inc eax
push eax
push dword [ebp - 0xd4]
push 0x16
push 0x13b
push 0x30
push 0x4b
push ecx
push esi
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
push 0x4c0220
push 0x200
call esi
test eax, eax
je 0x46ab24
push eax
push 0xc
lea ecx, [ebp - 0x308]
call fcn.00416ab0
movaps xmm0, xmmword [0x4ccd30]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x2cc]
movups xmmword [eax + ecx*8 + 0x24], xmm0
jmp 0x46ab24
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46ab9c
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x12
push 0x5a
push 0x32
and eax, 1
push 0x190
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4cb204
push 0x4c018c
push 0
call esi
test eax, eax
je 0x46ab9c
push eax
push 0xd
lea ecx, [ebp - 0x308]
call fcn.00416ab0
movaps xmm0, xmmword [0x4cc980]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x2cc]
movups xmmword [eax + ecx*8 + 0x24], xmm0
mov esi, dword [ebp - 0x364]
push 0x4cb214
lea ecx, [esi + 0x1a0]
call fcn.0041b170
cmp byte [esi + 0x1d0], 0
mov ecx, 3
jne 0x46abc4
xor esi, esi
jmp 0x46abf4
cmp word [esi + 0x1b0], 8
jne 0x46abe6
push dword [esi + 0x1b8]
call fcn.0048ddfc
add esp, 4
movzx esi, ax
mov ecx, 3
jmp 0x46abed
movzx esi, word [esi + 0x1b8]
xor eax, eax
cmp ax, si
jne 0x46ac6c
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46ac04
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cb230], 0
jne 0x46ac10
mov dword [ebp - 0x24], 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 - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x46add9
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cb230]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x46ac50
jmp 0x46add9
mov eax, 1
cmp ax, si
jne 0x46acec
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46ac86
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c818c], 0
jne 0x46ac90
mov dword [ebp - 0x24], 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 - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x46add9
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c818c]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x46acd0
jmp 0x46add9
mov edx, 2
cmp dx, si
jne 0x46ad69
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46ad0b
push eax
call fcn.00489c73
add esp, 4
mov edx, 2
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c81a4], 0
jne 0x46ad11
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x46add9
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4c81a4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x46ad50
jmp 0x46add9
cmp cx, si
jne 0x46ade3
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46ad83
push eax
call fcn.00489c73
add esp, 4
mov edx, 2
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c81c4], 0
jne 0x46ad90
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x46add9
mov ax, word [ecx*2 + 0x4c81c4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x46adc2
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x20], 1
mov edi, dword [ebp - 0x28]
test edi, edi
jne 0x46ae02
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x308]
mov byte [ebp - 0x20], 1
call fcn.00416d40
test al, al
je 0x46ae85
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x16
push 0x82
push 0x30
and eax, 1
push 0x1c2
shl eax, 0x11
add eax, 0x50800301
push eax
push edi
mov edi, dword [sym.imp.USER32.dll_CreateWindowExW]
push 0x4c018c
push 0
call edi
test eax, eax
je 0x46ae8b
push eax
push 0xd
lea ecx, [ebp - 0x308]
call fcn.00416ab0
movaps xmm0, xmmword [0x4ccd20]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x2cc]
movups xmmword [eax + ecx*8 + 0x24], xmm0
jmp 0x46ae8b
mov edi, dword [sym.imp.USER32.dll_CreateWindowExW]
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46af00
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x12
push 0x78
push 0x55
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4cb244
push 0x4c018c
push 0
call edi
test eax, eax
je 0x46af00
push eax
push 0xd
lea ecx, [ebp - 0x308]
call fcn.00416ab0
movaps xmm0, xmmword [0x4ccaa0]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x2cc]
movups xmmword [eax + ecx*8 + 0x24], xmm0
movsd xmm0, qword [0x4cc770]
sub esp, 0x14
movsd qword [esp + 0xc], xmm0
push 0x2bc
push ecx
lea ecx, [ebp - 0x308]
call fcn.00413b20
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
jne 0x46af3d
mov dword [ebp - 0x378], 0
jmp 0x46afb4
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0x82
push 0x73
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50010009
push eax
push 0x4cb260
push 0x4c019c
push 0
call edi
test eax, eax
jne 0x46af8b
mov dword [ebp - 0x378], eax
jmp 0x46afb4
push eax
push 0x15
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
movaps xmm0, xmmword [0x4cc850]
mov dword [ebp - 0x378], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cb284
push 0xffffffffffffffff
call fcn.00415120
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
jne 0x46afe4
mov dword [ebp - 0x38c], 0
jmp 0x46b05b
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0x64
push 0x73
and eax, 1
push 0xe6
shl eax, 0x11
add eax, 0x50010009
push eax
push 0x4cb2b4
push 0x4c019c
push 0
call edi
test eax, eax
jne 0x46b032
mov dword [ebp - 0x38c], eax
jmp 0x46b05b
push eax
push 0x15
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
movaps xmm0, xmmword [0x4cc840]
mov dword [ebp - 0x38c], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cb2d0
push 0xffffffffffffffff
call fcn.00415120
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
jne 0x46b08e
mov dword [ebp - 0x388], 0
jmp 0x46b108
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0x9b
push 0x73
and eax, 1
push 0x1a9
shl eax, 0x11
add eax, 0x50010009
push eax
push 0x4cb310
push 0x4c019c
push 0
call edi
test eax, eax
jne 0x46b0df
mov dword [ebp - 0x388], eax
jmp 0x46b108
push eax
push 0x15
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
movaps xmm0, xmmword [0x4cc860]
mov dword [ebp - 0x388], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cb338
push 0xffffffffffffffff
call fcn.00415120
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
jne 0x46b13b
mov dword [ebp - 0x370], 0
jmp 0x46b1b5
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0xa0
push 0x91
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50010009
push eax
push 0x4cb390
push 0x4c019c
push 0
call edi
test eax, eax
jne 0x46b18c
mov dword [ebp - 0x370], eax
jmp 0x46b1b5
push eax
push 0x15
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
movaps xmm0, xmmword [0x4cc870]
mov dword [ebp - 0x370], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cb3c0
push 0xffffffffffffffff
call fcn.00415120
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
jne 0x46b1e8
mov dword [ebp - 0x3b8], 0
jmp 0x46b265
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0xa0
push 0x91
and eax, 1
push 0xe6
shl eax, 0x11
add eax, 0x50010009
push eax
push 0x4cb414
push 0x4c019c
push 0
call edi
test eax, eax
jne 0x46b23c
mov dword [ebp - 0x3b8], eax
jmp 0x46b265
push eax
push 0x15
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
movaps xmm0, xmmword [0x4cc880]
mov dword [ebp - 0x3b8], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cb440
push 0xffffffffffffffff
call fcn.00415120
cmp si, 2
jae 0x46b299
cmp byte [ebp - 0x380], 0
mov eax, dword [ebp - 0x38c]
cmovne eax, dword [ebp - 0x388]
push 4
push eax
jmp 0x46b2bf
mov eax, 2
cmp ax, si
jne 0x46b2ad
push 4
push dword [ebp - 0x370]
jmp 0x46b2bf
mov eax, 3
cmp ax, si
jne 0x46b2ca
push 4
push dword [ebp - 0x378]
lea ecx, [ebp - 0x308]
call fcn.00414360
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b342
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x12
push 0x78
push 0xb4
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4cb494
push 0x4c018c
push 0
call edi
test eax, eax
je 0x46b342
push eax
push 0xd
lea ecx, [ebp - 0x308]
call fcn.00416ab0
movaps xmm0, xmmword [0x4ccac0]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x2cc]
movups xmmword [eax + ecx*8 + 0x24], xmm0
movsd xmm0, qword [0x4cc770]
sub esp, 0x14
movsd qword [esp + 0xc], xmm0
push 0x2bc
push ecx
lea ecx, [ebp - 0x308]
call fcn.00413b20
movsd xmm0, qword [0x4cc768]
xor eax, eax
movsd qword [ebp - 0x198], xmm0
mov dword [ebp - 0x190], 0x190
mov byte [ebp - 0x18c], 1
mov byte [ebp - 0x14a], 0
nop
inc eax
cmp word [eax*2 + 0x4bff50], 0
jne 0x46b390
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x18a]
push 0x20
push eax
call fcn.0048cf13
add esp, 0x10
cmp dword [ebp - 0xd8], 0
je 0x46b44a
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b44a
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0x104
push 0xd2
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cb4b8
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46b44a
push eax
push 4
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
mov esi, eax
movaps xmm0, xmmword [0x4cc890]
mov dword [ebp - 0x368], esi
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x46b454
mov dword [ebp - 0x368], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cb500
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46b502
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b502
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0x136
push 0xd2
and eax, 1
push 0x118
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cb5b8
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46b502
push eax
push 4
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
mov esi, eax
movaps xmm0, xmmword [0x4cc8e0]
mov dword [ebp - 0x3b4], esi
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x46b50c
mov dword [ebp - 0x3b4], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cb608
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46b5b7
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b5b7
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0x104
push 0xeb
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cb6f4
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46b5b7
push eax
push 4
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
mov esi, eax
movaps xmm0, xmmword [0x4cc8a0]
mov dword [ebp - 0x3b0], esi
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x46b5c1
mov dword [ebp - 0x3b0], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cb738
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46b66f
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b66f
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0x136
push 0xeb
and eax, 1
push 0x118
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cb7b8
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46b66f
push eax
push 4
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
mov esi, eax
movaps xmm0, xmmword [0x4cc8f0]
mov dword [ebp - 0x3ac], esi
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x46b679
mov dword [ebp - 0x3ac], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cb808
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46b724
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b724
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0x104
push 0x104
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cb880
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46b724
push eax
push 4
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
mov esi, eax
movaps xmm0, xmmword [0x4cc8b0]
mov dword [ebp - 0x3a8], esi
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x46b72e
mov dword [ebp - 0x3a8], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cb8c8
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46b7dc
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b7dc
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0x136
push 0x104
and eax, 1
push 0x118
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cba48
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46b7dc
push eax
push 4
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
mov esi, eax
movaps xmm0, xmmword [0x4cc900]
mov dword [ebp - 0x3a4], esi
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x46b7e6
mov dword [ebp - 0x3a4], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cbaa8
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46b891
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b891
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0x104
push 0x11d
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cbbc0
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46b891
push eax
push 4
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
mov esi, eax
movaps xmm0, xmmword [0x4cc8c0]
mov dword [ebp - 0x3a0], esi
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x46b89b
mov dword [ebp - 0x3a0], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cbc10
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46b949
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b949
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0x136
push 0x11d
and eax, 1
push 0x118
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cbc90
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46b949
push eax
push 4
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
mov esi, eax
movaps xmm0, xmmword [0x4cc910]
mov dword [ebp - 0x39c], esi
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x46b953
mov dword [ebp - 0x39c], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cbcf8
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46b9fe
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b9fe
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0x104
push 0x136
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cbd90
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46b9fe
push eax
push 4
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
mov esi, eax
movaps xmm0, xmmword [0x4cc8d0]
mov dword [ebp - 0x398], esi
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x46ba08
mov dword [ebp - 0x398], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cbdd8
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46bab6
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46bab6
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0x136
push 0x136
and eax, 1
push 0x118
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cbeb0
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46bab6
push eax
push 4
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
mov esi, eax
movaps xmm0, xmmword [0x4cc920]
mov dword [ebp - 0x394], esi
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x46bac0
mov dword [ebp - 0x394], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cbf10
push 0xffffffffffffffff
call fcn.00415120
xorps xmm0, xmm0
mov dword [ebp - 0x94], 0
movq qword [ebp - 0x9c], xmm0
mov dword [ebp - 0x9c], 0
movq qword [ebp - 0x90], xmm0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x90], 0
mov byte [ebp - 0x88], 1
mov byte [ebp - 4], 9
push 0x20a
mov byte [ebp - 0x94], 0
mov dword [ebp - 0x98], 0
call fcn.0048a02b
add esp, 4
mov esi, eax
xor eax, eax
mov dword [ebp - 0x9c], esi
push esi
push eax
push eax
push 0x25
mov word [esi + 0x208], ax
push eax
mov word [esi], ax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test esi, esi
mov byte [ebp - 0x94], 1
setne byte [ebp - 0x88]
test esi, esi
je 0x46bbfd
mov edi, dword [ebp - 0x90]
xorps xmm0, xmm0
movlpd qword [ebp - 0x6c], xmm0
mov dword [ebp - 0x6c], edi
mov byte [ebp - 4], 0xa
push 6
mov dword [ebp - 0x8c], 0
call fcn.0048a02b
mov ecx, dword [ebp - 0x8c]
add esp, 4
mov edx, eax
mov dword [ebp - 0x90], edx
cmp ecx, 2
jge 0x46bbe6
movzx eax, word [esi + ecx*2]
mov esi, eax
test ax, ax
je 0x46bbe6
mov word [edx + ecx*2], si
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x90]
inc ecx
mov dword [ebp - 0x8c], ecx
cmp ecx, 2
jge 0x46bbe6
mov esi, dword [ebp - 0x9c]
jmp 0x46bbb7
xor eax, eax
mov byte [ebp - 4], 9
mov word [edx + ecx*2], ax
test edi, edi
je 0x46bbfd
push edi
call fcn.00489c73
add esp, 4
mov esi, dword [ebp - 0x90]
xorps xmm0, xmm0
movq qword [ebp - 0x4c], xmm0
mov dword [ebp - 0x44], 0
test esi, esi
jne 0x46bc37
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x90], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x90]
mov dword [ebp - 0x8c], ecx
xor eax, eax
mov byte [ebp - 0x88], 1
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x4c], 0
mov byte [ebp - 0x44], 0
test esi, esi
je 0x46bc68
cmp word [esi], ax
je 0x46bc68
nop dword [eax + eax]
inc eax
cmp word [esi + eax*2], 0
jne 0x46bc60
mov dword [ebp - 0x48], 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 - 0x48]
xor ecx, ecx
mov dword [ebp - 0x4c], edx
test eax, eax
jle 0x46bca6
mov ax, word [esi + ecx*2]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
cmp ecx, eax
jl 0x46bc93
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x44], 1
mov byte [ebp - 4], 0xb
xorps xmm0, xmm0
movq qword [ebp - 0x40], xmm0
xor eax, eax
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x40], ecx
mov byte [ebp - 0x38], cl
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cbfcc], 0
jne 0x46bcd0
mov dword [ebp - 0x3c], 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 - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46bd27
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4cbfcc]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46bd10
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x38], 1
xorps xmm0, xmm0
mov dword [ebp - 0x50], ecx
movq qword [ebp - 0x58], xmm0
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x58], ecx
mov byte [ebp - 0x50], 1
push 4
push dword [ebp - 0x388]
lea ecx, [ebp - 0x308]
mov byte [ebp - 4], 0xd
call fcn.00415560
test eax, eax
je 0x46bdd4
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46bd71
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x38], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cbfcc], 0
jne 0x46bd80
mov dword [ebp - 0x3c], eax
xor ecx, ecx
inc eax
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46bdc9
mov ax, word [ecx*2 + 0x4cbfcc]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46bdb2
mov edi, dword [ebp - 0x378]
jmp 0x46bec9
push 4
push dword [ebp - 0x370]
lea ecx, [ebp - 0x308]
call fcn.00415560
test eax, eax
je 0x46be52
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46bdfb
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x38], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4cbfdc], 0
jne 0x46be01
mov dword [ebp - 0x3c], eax
xor ecx, ecx
inc eax
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46bdc9
mov ax, word [ecx*2 + 0x4cbfdc]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46be33
mov edi, dword [ebp - 0x378]
jmp 0x46bec9
mov edi, dword [ebp - 0x378]
lea ecx, [ebp - 0x308]
push 4
push edi
call fcn.00415560
test eax, eax
je 0x46bed3
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46be7a
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x38], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4cbff0], 0
jne 0x46be80
mov dword [ebp - 0x3c], eax
xor ecx, ecx
inc eax
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46bec9
mov ax, word [ecx*2 + 0x4cbff0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46beb2
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x38], 1
lea ecx, [ebp - 0x308]
call fcn.00416d40
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
test al, al
je 0x46bf54
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x12
push 0x23a
push 0x154
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4cbff8
push 0x4c018c
push 0
call esi
test eax, eax
je 0x46bf54
push eax
push 0xd
lea ecx, [ebp - 0x308]
call fcn.00416ab0
movaps xmm0, xmmword [0x4ccc40]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x2cc]
movups xmmword [eax + ecx*8 + 0x24], xmm0
movsd xmm0, qword [0x4cc770]
sub esp, 0x14
movsd qword [esp + 0xc], xmm0
push 0x2bc
push ecx
lea ecx, [ebp - 0x308]
call fcn.00413b20
movsd xmm0, qword [0x4cc770]
xor eax, eax
movsd qword [ebp - 0x198], xmm0
mov dword [ebp - 0x190], 0x190
mov byte [ebp - 0x18c], 1
mov byte [ebp - 0x14a], 0
inc eax
cmp word [eax*2 + 0x4bff50], 0
jne 0x46bfa0
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x18a]
push 0x20
push eax
call fcn.0048cf13
add esp, 0x10
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46c03c
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x12
push 0x5a
push 0x174
and eax, 1
push 0xa
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x4cc090
push 0x4c018c
push 0
call esi
test eax, eax
je 0x46c03c
push eax
push 0xd
lea ecx, [ebp - 0x308]
call fcn.00416ab0
movaps xmm0, xmmword [0x4cc9e0]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x2cc]
movups xmmword [eax + ecx*8 + 0x24], xmm0
movsd xmm0, qword [0x4cc770]
sub esp, 0x14
movsd qword [esp + 0xc], xmm0
push 0x190
push ecx
lea ecx, [ebp - 0x308]
call fcn.00413b20
mov esi, dword [ebp - 0x64]
test esi, esi
jne 0x46c07d
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x64], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x64]
mov dword [ebp - 0x60], ecx
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 0x5c], 1
test eax, eax
je 0x46c091
push eax
call fcn.00489c73
add esp, 4
xor eax, eax
mov byte [ebp - 0x44], 0
test esi, esi
je 0x46c0a8
cmp word [esi], ax
je 0x46c0a8
inc eax
cmp word [esi + eax*2], 0
jne 0x46c0a0
mov dword [ebp - 0x48], 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 - 0x48]
xor ecx, ecx
mov dword [ebp - 0x4c], edx
test eax, eax
jle 0x46c0e6
mov ax, word [esi + ecx*2]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
cmp ecx, eax
jl 0x46c0d3
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
mov byte [ebp - 0x44], 1
test eax, eax
jne 0x46c110
xor eax, eax
test ecx, ecx
je 0x46c10d
cmp word [ecx], ax
je 0x46c10d
inc eax
cmp word [ecx + eax*2], 0
jne 0x46c105
mov dword [ebp - 0x48], eax
cmp eax, 4
jge 0x46c153
test eax, eax
jne 0x46c12f
test ecx, ecx
je 0x46c12a
cmp word [ecx], ax
je 0x46c12a
inc eax
cmp word [ecx + eax*2], 0
jne 0x46c122
mov dword [ebp - 0x48], eax
test eax, eax
setg byte [ebp - 0x44]
test eax, eax
jle 0x46c153
cmp word [ecx + eax*2 - 2], 0x5c
jne 0x46c153
dec eax
xor edx, edx
mov dword [ebp - 0x48], eax
mov word [ecx + eax*2], dx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
test eax, eax
jne 0x46c137
test ecx, ecx
jne 0x46c16f
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x4c], eax
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x4c]
push dword [ebp - 0x380]
lea eax, [ebp - 0x58]
mov byte [ebp - 0x44], 1
push eax
push dword [ebp - 0x368]
lea eax, [ebp - 0x308]
push edi
push ecx
mov ecx, dword [ebp - 0x364]
push eax
call fcn.0046e420
cmp dword [ebp - 0x58], 0
xorps xmm0, xmm0
movq qword [ebp - 0x34], xmm0
mov dword [ebp - 0x2c], 0
jne 0x46c1c1
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x58], eax
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov word [eax], cx
mov edi, dword [ebp - 0x40]
mov byte [ebp - 0x50], 1
test edi, edi
jne 0x46c1e4
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x40], eax
xor ecx, ecx
mov word [eax], cx
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x3c], ecx
mov esi, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test esi, esi
jne 0x46c207
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x4c], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
xor ecx, ecx
mov byte [ebp - 0x44], 1
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
test esi, esi
je 0x46c230
cmp word [esi], cx
je 0x46c230
inc ecx
cmp word [esi + ecx*2], 0
jne 0x46c228
xor eax, eax
test edi, edi
je 0x46c248
cmp word [edi], ax
je 0x46c248
nop dword [eax + eax]
inc eax
cmp word [edi + eax*2], 0
jne 0x46c240
mov edx, dword [ebp - 0x58]
add ecx, eax
test edx, edx
je 0x46c262
xor eax, eax
cmp word [edx], ax
je 0x46c260
inc eax
cmp word [edx + eax*2], 0
jne 0x46c258
add ecx, eax
lea eax, [ecx + 1]
mov dword [ebp - 0x37c], ecx
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, dword [ebp - 0x34]
add esp, 4
mov dword [ebp - 0x35c], eax
mov ecx, eax
test edx, edx
je 0x46c2b1
movzx eax, word [edx]
test ax, ax
je 0x46c2b1
nop dword [eax + eax]
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x46c2a0
test esi, esi
je 0x46c2d2
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x46c2d2
sub esi, ecx
mov word [ecx], dx
add ecx, 2
movzx eax, word [esi + ecx]
mov edx, eax
test ax, ax
jne 0x46c2c1
test edi, edi
je 0x46c2f3
movzx eax, word [edi]
mov edx, eax
test ax, ax
je 0x46c2f3
sub edi, ecx
mov word [ecx], dx
add ecx, 2
movzx eax, word [ecx + edi]
mov edx, eax
test ax, ax
jne 0x46c2e2
mov edi, dword [ebp - 0x58]
test edi, edi
je 0x46c321
movzx eax, word [edi]
mov edx, eax
test ax, ax
je 0x46c321
mov esi, edi
sub esi, ecx
nop dword [eax + eax]
mov word [ecx], dx
add ecx, 2
movzx eax, word [esi + ecx]
mov edx, eax
test ax, ax
jne 0x46c310
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x46c336
push eax
call fcn.00489c73
add esp, 4
mov esi, dword [ebp - 0x35c]
mov eax, dword [ebp - 0x37c]
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x308]
mov byte [ebp - 0x2c], 1
call fcn.00416d40
test al, al
jne 0x46c374
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [ebp - 0x360], 0
jmp 0x46c3fb
test byte [ebp - 0xc0], 1
mov eax, 0x50020080
push 0
push dword [ebp - 0x1ec]
mov ecx, 0x50000080
cmovne ecx, eax
mov eax, dword [ebp - 0x2c8]
inc eax
or ecx, 0x10000
push eax
push dword [ebp - 0xd4]
push 0x14
push 0x1e0
push 0x172
push 0x64
push ecx
push esi
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
push 0x4c0220
push 0x200
call esi
test eax, eax
jne 0x46c3d2
mov dword [ebp - 0x360], eax
jmp 0x46c3fb
push eax
push 0xc
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
movaps xmm0, xmmword [0x4ccd00]
mov dword [ebp - 0x360], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
cmp dword [ebp - 0xd8], 0
je 0x46c48b
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46c48b
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x10
push 0x13f
push 0x1a4
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cc0a8
push 0x4c019c
push 0
call esi
test eax, eax
je 0x46c48b
push eax
push 4
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
movaps xmm0, xmmword [0x4cc930]
mov dword [ebp - 0x37c], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x46c495
mov dword [ebp - 0x37c], 0
push 4
push 0xffffffffffffffff
lea ecx, [ebp - 0x308]
call fcn.00414360
cmp dword [ebp - 0xd8], 0
je 0x46c534
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46c534
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x1e
push 0x64
push 0x19a
and eax, 1
push 0x154
shl eax, 0x11
add eax, 0x50010000
push eax
push 0x4c033c
push 0x4c019c
push 0
call esi
test eax, eax
je 0x46c534
push eax
push 3
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
movaps xmm0, xmmword [0x4ccf00]
mov dword [ebp - 0x390], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x46c53e
mov dword [ebp - 0x390], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4c4258
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46c5e5
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46c5e5
mov eax, dword [ebp - 0x2c8]
push 0
push dword [ebp - 0x1ec]
inc eax
push eax
push dword [ebp - 0xd4]
movzx eax, byte [ebp - 0xc0]
push 0x20
push 0x78
push 0x19a
and eax, 1
push 0x1cc
shl eax, 0x11
add eax, 0x50010000
push eax
push 0x4cc10c
push 0x4c019c
push 0
call esi
test eax, eax
je 0x46c5e5
push eax
push 3
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
mov esi, eax
movaps xmm0, xmmword [0x4ccf80]
mov dword [ebp - 0x384], esi
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x46c5ef
mov dword [ebp - 0x384], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cc124
push 0xffffffffffffffff
call fcn.00415120
mov eax, 0x1b
mov byte [ebp - 0x1c], 1
mov word [ebp - 0x1a], ax
mov eax, dword [ebp - 0x390]
mov word [ebp - 0x18], ax
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x46c62c
push eax
call dword [sym.imp.USER32.dll_DestroyAcceleratorTable]
push 1
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_CreateAcceleratorTableW]
xor ecx, ecx
cmp eax, 0xffffffff
push 1
cmove eax, ecx
lea ecx, [ebp - 0x308]
push 1
mov dword [ebp - 0xc4], eax
call fcn.0040db40
mov esi, dword [ebp - 0x364]
mov ecx, esi
push 0
call fcn.004284d0
test eax, eax
je 0x46e256
nop dword [eax]
mov eax, dword [esi + 0x22c]
cmp eax, 0xfffffffa
je 0x46e34f
lea ecx, [ebp - 0x308]
cmp dword [esi + 0x25c], ecx
jne 0x46d5e9
cmp eax, dword [ebp - 0x390]
je 0x46e34f
cmp eax, dword [ebp - 0x378]
jne 0x46c92d
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46c6b9
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x38], 0
xor eax, eax
nop
inc eax
cmp word [eax*2 + 0x4cbff0], 0
jne 0x46c6c0
mov dword [ebp - 0x3c], 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 - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46c717
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4cbff0]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46c700
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test eax, eax
jne 0x46c740
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x4c], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
push dword [ebp - 0x380]
lea ecx, [ebp - 0x58]
mov byte [ebp - 0x44], 1
push ecx
push dword [ebp - 0x368]
mov ecx, esi
push dword [ebp - 0x378]
push eax
lea eax, [ebp - 0x308]
push eax
call fcn.0046e420
cmp dword [ebp - 0x58], 0
jne 0x46c784
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x58], eax
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov word [eax], cx
mov edi, dword [ebp - 0x40]
mov byte [ebp - 0x50], 1
mov dword [ebp - 0x36c], edi
test edi, edi
jne 0x46c7b3
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x40], eax
xor ecx, ecx
mov word [eax], cx
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x36c], edi
mov esi, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test esi, esi
jne 0x46c7d6
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x4c], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp - 0x34]
xor ecx, ecx
mov byte [ebp - 0x44], 1
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
test esi, esi
je 0x46c808
cmp word [esi], cx
je 0x46c808
nop dword [eax]
inc ecx
cmp word [esi + ecx*2], 0
jne 0x46c800
xor eax, eax
test edi, edi
je 0x46c81b
cmp word [edi], ax
je 0x46c81b
mov edx, dword [ebp - 0x58]
add ecx, eax
test edx, edx
je 0x46c83a
cmp eax, dword [ebp - 0x38c]
jne 0x46cb46
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46c949
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov byte [ebp - 0x38], 1
test eax, eax
jne 0x46c97a
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x4c], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
push dword [ebp - 0x380]
lea ecx, [ebp - 0x58]
mov byte [ebp - 0x44], 1
push ecx
push dword [ebp - 0x368]
mov ecx, esi
push dword [ebp - 0x378]
push eax
lea eax, [ebp - 0x308]
push eax
call fcn.0046e420
cmp dword [ebp - 0x58], 0
jne 0x46c9be
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x58], eax
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov word [eax], cx
mov edi, dword [ebp - 0x40]
mov byte [ebp - 0x50], 1
mov dword [ebp - 0x36c], edi
test edi, edi
jne 0x46c9ed
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x40], eax
xor ecx, ecx
mov word [eax], cx
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x36c], edi
mov esi, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test esi, esi
jne 0x46ca10
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x4c], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp - 0x34]
xor ecx, ecx
mov byte [ebp - 0x44], 1
mov dword [ebp - 0x374], eax
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
test esi, esi
je 0x46ca48
cmp word [esi], cx
je 0x46ca48
nop word [eax + eax]
inc ecx
cmp word [esi + ecx*2], 0
jne 0x46ca40
xor eax, eax
test edi, edi
je 0x46ca5b
cmp word [edi], ax
je 0x46ca5b
inc eax
cmp word [edi + eax*2], 0
jne 0x46ca53
mov edx, dword [ebp - 0x58]
add ecx, eax
test edx, edx
je 0x46ca7a
xor eax, eax
cmp word [edx], ax
je 0x46ca78
lea eax, [ecx + 1]
mov dword [ebp - 0x35c], ecx
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a02b
mov edx, dword [ebp - 0x34]
add esp, 4
mov dword [ebp - 0x68], eax
mov ecx, eax
test edx, edx
je 0x46cac9
cmp eax, dword [ebp - 0x388]
jne 0x46cdb6
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46cb62
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x38], 0
xor eax, eax
nop dword [eax + eax]
inc eax
cmp word [eax*2 + 0x4cbfcc], 0
jne 0x46cb70
mov dword [ebp - 0x3c], 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 - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46cbc7
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4cbfcc]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46cbb0
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test eax, eax
jne 0x46cbf0
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x4c], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
push dword [ebp - 0x380]
lea ecx, [ebp - 0x58]
mov byte [ebp - 0x44], 1
push ecx
push dword [ebp - 0x368]
mov ecx, esi
push dword [ebp - 0x378]
push eax
lea eax, [ebp - 0x308]
push eax
call fcn.0046e420
cmp dword [ebp - 0x58], 0
jne 0x46cc34
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x58], eax
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov word [eax], cx
mov edi, dword [ebp - 0x40]
mov byte [ebp - 0x50], 1
mov dword [ebp - 0x36c], edi
test edi, edi
jne 0x46cc63
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x40], eax
xor ecx, ecx
mov word [eax], cx
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x36c], edi
mov esi, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test esi, esi
jne 0x46cc86
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x4c], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp - 0x34]
xor ecx, ecx
mov byte [ebp - 0x44], 1
mov dword [ebp - 0x374], eax
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
test esi, esi
je 0x46ccb8
cmp eax, dword [ebp - 0x370]
jne 0x46d026
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46cdd2
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x38], 0
xor eax, eax
nop dword [eax + eax]
inc eax
cmp word [eax*2 + 0x4cbfdc], 0
jne 0x46cde0
mov dword [ebp - 0x3c], 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 - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46ce37
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4cbfdc]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46ce20
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test eax, eax
jne 0x46ce60
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x4c], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
push dword [ebp - 0x380]
lea ecx, [ebp - 0x58]
mov byte [ebp - 0x44], 1
push ecx
push dword [ebp - 0x368]
mov ecx, esi
push dword [ebp - 0x378]
push eax
lea eax, [ebp - 0x308]
push eax
call fcn.0046e420
cmp dword [ebp - 0x58], 0
jne 0x46cea4
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x58], eax
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov word [eax], cx
mov edi, dword [ebp - 0x40]
mov byte [ebp - 0x50], 1
mov dword [ebp - 0x36c], edi
test edi, edi
jne 0x46ced3
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x40], eax
xor ecx, ecx
mov word [eax], cx
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x36c], edi
mov esi, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test esi, esi
jne 0x46cef6
cmp eax, dword [ebp - 0x3b8]
jne 0x46d296
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46d042
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 0x38], 0
xor eax, eax
nop dword [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc150], 0
jne 0x46d050
mov dword [ebp - 0x3c], 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 - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46d0a7
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4cc150]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46d090
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test eax, eax
jne 0x46d0d0
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x4c], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
push dword [ebp - 0x380]
lea ecx, [ebp - 0x58]
mov byte [ebp - 0x44], 1
push ecx
push dword [ebp - 0x368]
mov ecx, esi
push dword [ebp - 0x378]
push eax
lea eax, [ebp - 0x308]
push eax
call fcn.0046e420
cmp dword [ebp - 0x58], 0
jne 0x46d114
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x58], eax
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov word [eax], cx
mov edi, dword [ebp - 0x40]
mov byte [ebp - 0x50], 1
mov dword [ebp - 0x36c], edi
test edi, edi
jne 0x46d143
mov ecx, dword [ebp - 0x368]
cmp eax, ecx
je 0x46d38f
cmp eax, dword [ebp - 0x3b4]
je 0x46d38f
cmp eax, dword [ebp - 0x3b0]
je 0x46d38f
cmp eax, dword [ebp - 0x3ac]
je 0x46d38f
cmp eax, dword [ebp - 0x3a8]
je 0x46d38f
cmp eax, dword [ebp - 0x3a4]
je 0x46d38f
mov eax, dword [ebp - 0x4c]
test eax, eax
jne 0x46d3b4
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x4c], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x368]
push dword [ebp - 0x380]
lea edx, [ebp - 0x58]
mov byte [ebp - 0x44], 1
push edx
push ecx
push dword [ebp - 0x378]
mov ecx, esi
push eax
lea eax, [ebp - 0x308]
push eax
call fcn.0046e420
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x36c], edi
test edi, edi
jne 0x46d403
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x40], eax
xor ecx, ecx
mov word [eax], cx
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x36c], edi
cmp dword [ebp - 0x58], 0
mov byte [ebp - 0x38], 1
jne 0x46d422
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x58], eax
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov word [eax], cx
mov esi, dword [ebp - 0x4c]
mov byte [ebp - 0x50], 1
test esi, esi
jne 0x46d445
push 2
call fcn.0048a02b
add esp, 4
mov dword [ebp - 0x4c], eax
xor ecx, ecx
mov word [eax], cx
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp - 0x34]
xor ecx, ecx
mov byte [ebp - 0x44], 1
mov dword [ebp - 0x374], eax
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
test esi, esi
je 0x46d478
push 0
mov ecx, esi
call fcn.004284d0
test eax, eax
jne 0x46c670
jmp 0x46e256
mov edi, dword [ebp - 0x58]
mov esi, 1
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x46e26e
push eax
call fcn.00489c73
add esp, 4
test edi, edi
je 0x46e27b
push edi
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46e28b
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x46e29b
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x90]
test eax, eax
je 0x46e2ae
push eax
call fcn.00489c73
add esp, 4
push dword [ebp - 0x9c]
call fcn.00489c73
add esp, 4
lea ecx, [ebp - 0x308]
mov byte [ebp - 4], 0x1a
call fcn.0040c540
mov eax, dword [ebp - 0x2cc]
test eax, eax
je 0x46e2de
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x1f8]
test eax, eax
je 0x46e2f1
push eax
call fcn.00489c73
add esp, 4
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ebp - 0x328]
test ecx, ecx
je 0x46e32c
test eax, eax
je 0x46e382
push dword [ebp - 0x310]
lea eax, [ebp - 0x328]
push dword [ebp - 0x320]
push eax
call fcn.0040c930
call fcn.00403550
mov eax, dword [ebp - 0x328]
test eax, eax
je 0x46e382
push eax
call fcn.00489c73
add esp, 4
jmp 0x46e382
or esi, 0xffffffff
jmp 0x46e25e
mov byte [ebp - 0x7c], 0
push ecx
mov ecx, dword [ebp - 0x364]
push 0x1c2
push 0x96
lea eax, [ecx + 0x2a8]
push eax
push 0
push 0x4cb078
call fcn.00432b40
or esi, 0xffffffff
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x46e392
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x46e3a2
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x46e3b5
push eax
call fcn.00489c73
add esp, 4
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46e3c5
push eax
call fcn.00489c73
add esp, 4
mov eax, esi
jmp 0x46e3ec
push ecx
push 0x1c2
push 0x96
lea eax, [esi + 0x2a8]
push eax
push 0
push 0x4c3bf0
mov ecx, esi
call fcn.00432b40
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00489c65
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret