Function at 0x46a280
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 0x49f2d6
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 - 0x36c], esi
mov eax, dword [esi + 0xbc]
lea ecx, [esi + 0x2e8]
cmp eax, 0xffffffff
jne 0x46a2dc
mov eax, dword [ecx]
mov edx, dword [esi + 0x2e4]
test edx, edx
je 0x46e655
cmp eax, 1
jl 0x46e655
cmp eax, dword [ecx]
jg 0x46e655
lea eax, [eax + eax*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x46e655
cmp dword [edx + eax*8], 0xf
jne 0x46e655
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 0x46e655
push ecx
push dword [esi + 0xd8]
lea ecx, [esi + 0x2a8]
call fcn.00416520
lea ecx, [esi + 0x2a8]
test eax, eax
jns 0x46a364
push ecx
push 0x1c2
push 0x96
push ecx
push 0
push 0x4c93b8
jmp 0x46e66e
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 0x46a467
test eax, eax
je 0x46a417
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x7c], 0
mov dword [ebp - 0x80], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x80]
xor ecx, ecx
mov dword [ebp - 0x84], edx
test eax, eax
jle 0x46a456
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 0x46a440
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x80]
mov esi, dword [ebp - 0x84]
jmp 0x46a47f
test eax, eax
je 0x46a474
push eax
call fcn.00489f13
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 0x46e5e3
test eax, eax
jne 0x46a4a1
cmp word [esi], ax
je 0x46a49c
inc eax
cmp word [esi + eax*2], 0
jne 0x46a494
mov dword [ebp - 0x80], eax
test eax, eax
jle 0x46e5e3
push esi
mov byte [ebp - 0x7c], 1
call fcn.0048e09c
add esp, 4
mov dword [ebp - 0x360], eax
cmp eax, 1
jl 0x46e5e7
push 3
push edi
mov edi, dword [ebp - 0x36c]
push dword [edi + 0xbc]
lea ecx, [edi + 0x2a8]
call fcn.00416470
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x46a537
test eax, eax
je 0x46a4f3
push eax
call fcn.00489f13
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x46a529
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 0x46a516
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
jmp 0x46a54c
test eax, eax
je 0x46a544
push eax
call fcn.00489f13
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 0x46a580
test eax, eax
jne 0x46a56d
cmp word [esi], ax
je 0x46a568
nop dword [eax]
inc eax
cmp word [esi + eax*2], 0
jne 0x46a560
mov dword [ebp - 0x24], eax
test eax, eax
jle 0x46a580
push esi
mov byte [ebp - 0x20], 1
call fcn.0048e09c
add esp, 4
mov esi, eax
jmp 0x46a586
mov byte [ebp - 0x20], 0
xor esi, esi
mov ecx, edi
call fcn.0042ee70
push 1
push dword [ebp - 0x360]
add edi, 0x2a8
push esi
mov esi, dword [ebp - 0x36c]
mov ecx, esi
call fcn.0042f1e0
test eax, eax
jne 0x46a5c6
push ecx
push 0x1c2
push 0x96
push edi
push eax
push 0x4cb120
mov ecx, esi
jmp 0x46e606
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 0x4c2198
lea ecx, [esi + 0x168]
mov byte [ebp - 4], 5
call fcn.0041b0e0
cmp byte [esi + 0x198], 0
mov edi, 2
je 0x46a707
cmp word [esi + 0x178], 8
jne 0x46a661
push dword [esi + 0x180]
call fcn.0048e09c
add esp, 4
movzx esi, ax
jmp 0x46a668
movzx esi, word [esi + 0x180]
xor eax, eax
cmp ax, si
je 0x46a707
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x46a683
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x5c], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c0540], 0
jne 0x46a690
mov dword [ebp - 0x60], eax
xor ecx, ecx
inc eax
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x60]
xor ecx, ecx
mov dword [ebp - 0x64], edx
test eax, eax
jle 0x46a6d9
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 0x46a6c2
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x64]
mov byte [ebp - 0x5c], 1
test eax, eax
jne 0x46a702
push 2
call fcn.0048a2cb
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 0x46a70f
lea ecx, [ebp - 0x64]
call fcn.0041e1f0
mov esi, dword [ebp - 0x36c]
push dword [esi + 0x4d8]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x46a72d
mov edi, dword [esi + 0x4d8]
jmp 0x46a72f
xor edi, edi
push 0x268
lea eax, [ebp - 0x308]
push 0
push eax
call fcn.0048ba10
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 0x4cb1a4
cmovne eax, esi
lea ecx, [ebp - 0x308]
push 0x4c3d00
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 - 0x36c]
mov dword [ebp - 0x360], eax
je 0x46a86a
xor esi, esi
add edi, 0x2f8
mov eax, dword [edi]
test eax, eax
je 0x46a848
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x46a848
inc esi
add edi, 4
cmp esi, 0x30
jl 0x46a826
mov edi, dword [ebp - 0x36c]
jmp 0x46a86a
mov edi, dword [ebp - 0x36c]
mov eax, dword [ebp - 0x360]
mov dword [edi + esi*4 + 0x2f8], eax
inc esi
cmp esi, dword [edi + 0x2f4]
jle 0x46a86a
mov dword [edi + 0x2f4], esi
movsd xmm0, qword [0x4cc778]
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 0x46a8b0
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x18a]
push 0x20
push eax
call fcn.0048d1b3
add esp, 0x10
mov dword [ebp - 0x118], 0x1400
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46a95a
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 0x4cb1c4
push 0x4c018c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x46a95a
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 [0x4cc768]
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 0x46a984
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x18a]
push 0x20
push eax
call fcn.0048d1b3
add esp, 0x10
mov dword [ebp - 0x118], 0x400
lea ecx, [edi + 0x1a0]
push 0
push 0x4c2144
call fcn.0041b1c0
mov esi, eax
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46a9d6
push eax
call fcn.00489f13
add esp, 4
xor eax, eax
mov byte [ebp - 0x20], 0
test esi, esi
je 0x46a9ed
cmp word [esi], ax
je 0x46a9ed
inc eax
cmp word [esi + eax*2], 0
jne 0x46a9e5
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x46aa33
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 0x46aa20
xor ecx, ecx
mov word [edx + eax*2], cx
mov edi, dword [ebp - 0x28]
mov byte [ebp - 0x20], 1
cmp edi, 0x4c80b4
jne 0x46aa54
mov byte [ebp - 0x380], 1
jmp 0x46aad3
test edi, edi
je 0x46aacd
mov esi, 0x4c80b4
nop dword [eax]
movzx eax, word [edi]
mov ecx, eax
test ax, ax
jne 0x46aa71
cmp word [esi], ax
je 0x46aa48
jmp 0x46aa76
cmp ax, word [esi]
je 0x46aabc
xor edx, edx
cmp dx, ax
jne 0x46aa85
mov dword [ebp - 0x37c], edx
jmp 0x46aa97
push ecx
call fcn.0048e184
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 0x46aaa7
xor eax, eax
jmp 0x46aab3
push ecx
call fcn.0048e184
add esp, 4
movzx eax, ax
cmp word [ebp - 0x37c], ax
jne 0x46aac4
add edi, 2
add esi, 2
jmp 0x46aa60
mov byte [ebp - 0x380], 0
jmp 0x46aad3
mov byte [ebp - 0x380], cl
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46ab4c
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 0x4cb1ec
push 0x4c018c
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x46ab4c
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 - 0x36c]
push 0
push 0x4c3004
add ecx, 0x1a0
call fcn.0041b1c0
mov esi, eax
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x46ab76
push eax
call fcn.00489f13
add esp, 4
xor eax, eax
mov byte [ebp - 0x70], 0
test esi, esi
je 0x46ab8d
cmp word [esi], ax
je 0x46ab8d
inc eax
cmp word [esi + eax*2], 0
jne 0x46ab85
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x74]
xor ecx, ecx
mov dword [ebp - 0x78], edx
test eax, eax
jle 0x46abd3
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 0x46abc0
xor ecx, ecx
mov word [edx + eax*2], cx
mov esi, dword [ebp - 0x78]
mov byte [ebp - 0x70], 1
test esi, esi
jne 0x46abfc
push 2
call fcn.0048a2cb
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 0x46ac10
push eax
call fcn.00489f13
add esp, 4
xor eax, eax
mov byte [ebp - 0x20], 0
test esi, esi
je 0x46ac28
cmp word [esi], ax
je 0x46ac28
nop
inc eax
cmp word [esi + eax*2], 0
jne 0x46ac20
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x46ac63
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 0x46ac50
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x24]
mov byte [ebp - 0x20], cl
test eax, eax
jne 0x46ac8b
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x46ac88
cmp word [ecx], ax
je 0x46ac88
nop
inc eax
cmp word [ecx + eax*2], 0
jne 0x46ac80
mov dword [ebp - 0x24], eax
xor ecx, ecx
nop dword [eax]
inc ecx
cmp word [ecx*2 + 0x4bffa0], 0
jne 0x46ac90
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.0048a2cb
mov edx, dword [ebp - 0x28]
mov edi, 0x4bffa0
add esp, 4
mov dword [ebp - 0x360], eax
mov ecx, eax
mov esi, 0x20
sub edi, eax
mov word [ecx], si
add ecx, 2
movzx eax, word [edi + ecx]
mov esi, eax
test ax, ax
jne 0x46acd0
cmp dword [ebp - 0x28], 0
je 0x46ad02
movzx eax, word [edx]
mov esi, eax
test ax, ax
je 0x46ad02
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x46acf1
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46ad17
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x37c]
lea ecx, [ebp - 0x308]
mov esi, dword [ebp - 0x360]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 1
call fcn.00416d40
test al, al
je 0x46adae
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 0x46adb4
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 0x46adb4
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46ae2c
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 0x4cb1fc
push 0x4c018c
push 0
call esi
test eax, eax
je 0x46ae2c
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 - 0x36c]
push 0x4cb20c
lea ecx, [esi + 0x1a0]
call fcn.0041b0e0
cmp byte [esi + 0x1d0], 0
mov ecx, 3
jne 0x46ae54
xor esi, esi
jmp 0x46ae84
cmp word [esi + 0x1b0], 8
jne 0x46ae76
push dword [esi + 0x1b8]
call fcn.0048e09c
add esp, 4
movzx esi, ax
mov ecx, 3
jmp 0x46ae7d
movzx esi, word [esi + 0x1b8]
xor eax, eax
cmp ax, si
jne 0x46aefc
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46ae94
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x20], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cb228], 0
jne 0x46aea0
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x46b069
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4cb228]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x46aee0
jmp 0x46b069
mov eax, 1
cmp ax, si
jne 0x46af7c
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46af16
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c8184], 0
jne 0x46af20
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x46b069
nop dword [eax + eax]
mov ax, word [ecx*2 + 0x4c8184]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x46af60
jmp 0x46b069
mov edx, 2
cmp dx, si
jne 0x46aff9
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46af9b
push eax
call fcn.00489f13
add esp, 4
mov edx, 2
mov byte [ebp - 0x20], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4c819c], 0
jne 0x46afa1
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x46b069
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4c819c]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x46afe0
jmp 0x46b069
cmp cx, si
jne 0x46b073
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46b013
push eax
call fcn.00489f13
add esp, 4
mov edx, 2
mov byte [ebp - 0x20], 0
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x4c81bc], 0
jne 0x46b020
mov dword [ebp - 0x24], eax
xor ecx, ecx
inc eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x46b069
mov ax, word [ecx*2 + 0x4c81bc]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x46b052
xor ecx, ecx
mov word [edx + eax*2], cx
mov byte [ebp - 0x20], 1
mov edi, dword [ebp - 0x28]
test edi, edi
jne 0x46b092
push 2
call fcn.0048a2cb
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 0x46b115
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 0x46b11b
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 0x46b11b
mov edi, dword [sym.imp.USER32.dll_CreateWindowExW]
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b190
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 0x4cb23c
push 0x4c018c
push 0
call edi
test eax, eax
je 0x46b190
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 [0x4cc768]
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 0x46b1cd
mov dword [ebp - 0x378], 0
jmp 0x46b244
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 0x4cb258
push 0x4c019c
push 0
call edi
test eax, eax
jne 0x46b21b
mov dword [ebp - 0x378], eax
jmp 0x46b244
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 0x4cb27c
push 0xffffffffffffffff
call fcn.00415120
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
jne 0x46b274
mov dword [ebp - 0x38c], 0
jmp 0x46b2eb
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 0x4cb2ac
push 0x4c019c
push 0
call edi
test eax, eax
jne 0x46b2c2
mov dword [ebp - 0x38c], eax
jmp 0x46b2eb
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 0x4cb2c8
push 0xffffffffffffffff
call fcn.00415120
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
jne 0x46b31e
mov dword [ebp - 0x388], 0
jmp 0x46b398
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 0x4cb308
push 0x4c019c
push 0
call edi
test eax, eax
jne 0x46b36f
mov dword [ebp - 0x388], eax
jmp 0x46b398
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 0x4cb330
push 0xffffffffffffffff
call fcn.00415120
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
jne 0x46b3cb
mov dword [ebp - 0x370], 0
jmp 0x46b445
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 0x4cb388
push 0x4c019c
push 0
call edi
test eax, eax
jne 0x46b41c
mov dword [ebp - 0x370], eax
jmp 0x46b445
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 0x4cb3b8
push 0xffffffffffffffff
call fcn.00415120
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
jne 0x46b478
mov dword [ebp - 0x3b8], 0
jmp 0x46b4f5
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 0x4cb40c
push 0x4c019c
push 0
call edi
test eax, eax
jne 0x46b4cc
mov dword [ebp - 0x3b8], eax
jmp 0x46b4f5
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 0x4cb438
push 0xffffffffffffffff
call fcn.00415120
cmp si, 2
jae 0x46b529
cmp byte [ebp - 0x380], 0
mov eax, dword [ebp - 0x38c]
cmovne eax, dword [ebp - 0x388]
push 4
push eax
jmp 0x46b54f
mov eax, 2
cmp ax, si
jne 0x46b53d
push 4
push dword [ebp - 0x370]
jmp 0x46b54f
mov eax, 3
cmp ax, si
jne 0x46b55a
push 4
push dword [ebp - 0x378]
lea ecx, [ebp - 0x308]
call fcn.00414360
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b5d2
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 0x4cb48c
push 0x4c018c
push 0
call edi
test eax, eax
je 0x46b5d2
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 [0x4cc768]
sub esp, 0x14
movsd qword [esp + 0xc], xmm0
push 0x2bc
push ecx
lea ecx, [ebp - 0x308]
call fcn.00413b20
movsd xmm0, qword [0x4cc760]
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 0x46b620
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x18a]
push 0x20
push eax
call fcn.0048d1b3
add esp, 0x10
cmp dword [ebp - 0xd8], 0
je 0x46b6da
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b6da
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 0x4cb4b0
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46b6da
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 - 0x364], esi
lea edx, [esi + esi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x46b6e4
mov dword [ebp - 0x364], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cb4f8
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46b792
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b792
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 pe_nt_image_headers32
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cb5b0
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46b792
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 0x46b79c
mov dword [ebp - 0x3b4], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cb600
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46b847
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b847
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 0x4cb6ec
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46b847
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 0x46b851
mov dword [ebp - 0x3b0], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cb730
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46b8ff
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b8ff
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 pe_nt_image_headers32
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cb7b0
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46b8ff
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 0x46b909
mov dword [ebp - 0x3ac], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cb800
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46b9b4
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46b9b4
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 0x4cb878
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46b9b4
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 0x46b9be
mov dword [ebp - 0x3a8], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cb8c0
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46ba6c
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46ba6c
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 pe_nt_image_headers32
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cba40
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46ba6c
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 0x46ba76
mov dword [ebp - 0x3a4], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cbaa0
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46bb21
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46bb21
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 0x4cbbb8
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46bb21
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 0x46bb2b
mov dword [ebp - 0x3a0], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cbc08
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46bbd9
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46bbd9
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 pe_nt_image_headers32
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cbc88
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46bbd9
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 0x46bbe3
mov dword [ebp - 0x39c], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cbcf0
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46bc8e
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46bc8e
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 0x4cbd88
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46bc8e
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 0x46bc98
mov dword [ebp - 0x398], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cbdd0
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46bd46
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46bd46
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 pe_nt_image_headers32
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x4cbea8
push 0x4c019c
push 0
call edi
test eax, eax
je 0x46bd46
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 0x46bd50
mov dword [ebp - 0x394], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cbf08
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.0048a2cb
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 0x46be8d
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.0048a2cb
mov ecx, dword [ebp - 0x8c]
add esp, 4
mov edx, eax
mov dword [ebp - 0x90], edx
cmp ecx, 2
jge 0x46be76
movzx eax, word [esi + ecx*2]
mov esi, eax
test ax, ax
je 0x46be76
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 0x46be76
mov esi, dword [ebp - 0x9c]
jmp 0x46be47
xor eax, eax
mov byte [ebp - 4], 9
mov word [edx + ecx*2], ax
test edi, edi
je 0x46be8d
push edi
call fcn.00489f13
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 0x46bec7
push 2
call fcn.0048a2cb
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 0x46bef8
cmp word [esi], ax
je 0x46bef8
nop dword [eax + eax]
inc eax
cmp word [esi + eax*2], 0
jne 0x46bef0
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov dword [ebp - 0x4c], edx
test eax, eax
jle 0x46bf36
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 0x46bf23
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 + 0x4cbfc4], 0
jne 0x46bf60
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46bfb7
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4cbfc4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46bfa0
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 0x46c064
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46c001
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x38], 0
xor eax, eax
nop word [eax + eax]
inc eax
cmp word [eax*2 + 0x4cbfc4], 0
jne 0x46c010
mov dword [ebp - 0x3c], eax
xor ecx, ecx
inc eax
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46c059
mov ax, word [ecx*2 + 0x4cbfc4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46c042
mov edi, dword [ebp - 0x378]
jmp 0x46c159
push 4
push dword [ebp - 0x370]
lea ecx, [ebp - 0x308]
call fcn.00415560
test eax, eax
je 0x46c0e2
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46c08b
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x38], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4cbfd4], 0
jne 0x46c091
mov dword [ebp - 0x3c], eax
xor ecx, ecx
inc eax
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46c059
mov ax, word [ecx*2 + 0x4cbfd4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46c0c3
mov edi, dword [ebp - 0x378]
jmp 0x46c159
mov edi, dword [ebp - 0x378]
lea ecx, [ebp - 0x308]
push 4
push edi
call fcn.00415560
test eax, eax
je 0x46c163
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46c10a
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x38], 0
xor eax, eax
inc eax
cmp word [eax*2 + 0x4cbfe8], 0
jne 0x46c110
mov dword [ebp - 0x3c], eax
xor ecx, ecx
inc eax
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46c159
mov ax, word [ecx*2 + 0x4cbfe8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46c142
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 0x46c1e4
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 0x4cbff0
push 0x4c018c
push 0
call esi
test eax, eax
je 0x46c1e4
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 [0x4cc768]
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
inc eax
cmp word [eax*2 + 0x4bff50], 0
jne 0x46c230
inc eax
push eax
push 0x4bff50
lea eax, [ebp - 0x18a]
push 0x20
push eax
call fcn.0048d1b3
add esp, 0x10
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46c2cc
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 0x4cc088
push 0x4c018c
push 0
call esi
test eax, eax
je 0x46c2cc
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 [0x4cc768]
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 0x46c30d
push 2
call fcn.0048a2cb
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 0x46c321
push eax
call fcn.00489f13
add esp, 4
xor eax, eax
mov byte [ebp - 0x44], 0
test esi, esi
je 0x46c338
cmp word [esi], ax
je 0x46c338
inc eax
cmp word [esi + eax*2], 0
jne 0x46c330
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov dword [ebp - 0x4c], edx
test eax, eax
jle 0x46c376
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 0x46c363
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 0x46c3a0
xor eax, eax
test ecx, ecx
je 0x46c39d
cmp word [ecx], ax
je 0x46c39d
inc eax
cmp word [ecx + eax*2], 0
jne 0x46c395
mov dword [ebp - 0x48], eax
cmp eax, 4
jge 0x46c3e3
test eax, eax
jne 0x46c3bf
test ecx, ecx
je 0x46c3ba
cmp word [ecx], ax
je 0x46c3ba
inc eax
cmp word [ecx + eax*2], 0
jne 0x46c3b2
mov dword [ebp - 0x48], eax
test eax, eax
setg byte [ebp - 0x44]
test eax, eax
jle 0x46c3e3
cmp word [ecx + eax*2 - 2], 0x5c
jne 0x46c3e3
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 0x46c3c7
test ecx, ecx
jne 0x46c3ff
push 2
call fcn.0048a2cb
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 - 0x364]
lea eax, [ebp - 0x308]
push edi
push ecx
mov ecx, dword [ebp - 0x36c]
push eax
call fcn.0046e6b0
cmp dword [ebp - 0x58], 0
xorps xmm0, xmm0
movq qword [ebp - 0x34], xmm0
mov dword [ebp - 0x2c], 0
jne 0x46c451
push 2
call fcn.0048a2cb
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 0x46c474
push 2
call fcn.0048a2cb
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 0x46c497
push 2
call fcn.0048a2cb
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 0x46c4c0
cmp word [esi], cx
je 0x46c4c0
inc ecx
cmp word [esi + ecx*2], 0
jne 0x46c4b8
xor eax, eax
test edi, edi
je 0x46c4d8
cmp word [edi], ax
je 0x46c4d8
nop dword [eax + eax]
inc eax
cmp word [edi + eax*2], 0
jne 0x46c4d0
mov edx, dword [ebp - 0x58]
add ecx, eax
test edx, edx
je 0x46c4f2
xor eax, eax
cmp word [edx], ax
je 0x46c4f0
inc eax
cmp word [edx + eax*2], 0
jne 0x46c4e8
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.0048a2cb
mov edx, dword [ebp - 0x34]
add esp, 4
mov dword [ebp - 0x360], eax
mov ecx, eax
test edx, edx
je 0x46c541
movzx eax, word [edx]
test ax, ax
je 0x46c541
nop dword [eax + eax]
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x46c530
test esi, esi
je 0x46c562
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x46c562
sub esi, ecx
mov word [ecx], dx
add ecx, 2
movzx eax, word [ecx + esi]
mov edx, eax
test ax, ax
jne 0x46c551
test edi, edi
je 0x46c583
movzx eax, word [edi]
mov edx, eax
test ax, ax
je 0x46c583
sub edi, ecx
mov word [ecx], dx
add ecx, 2
movzx eax, word [ecx + edi]
mov edx, eax
test ax, ax
jne 0x46c572
mov edi, dword [ebp - 0x58]
test edi, edi
je 0x46c5b1
movzx eax, word [edi]
mov edx, eax
test ax, ax
je 0x46c5b1
mov esi, edi
sub esi, ecx
nop dword [eax + eax]
mov word [ecx], dx
add ecx, 2
movzx eax, word [ecx + esi]
mov edx, eax
test ax, ax
jne 0x46c5a0
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x46c5c6
push eax
call fcn.00489f13
add esp, 4
mov esi, dword [ebp - 0x360]
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 0x46c604
mov esi, dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [ebp - 0x35c], 0
jmp 0x46c68b
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 0x46c662
mov dword [ebp - 0x35c], eax
jmp 0x46c68b
push eax
push 0xc
lea ecx, [ebp - 0x308]
call fcn.00416ab0
mov ecx, dword [ebp - 0x2cc]
movaps xmm0, xmmword [0x4ccd00]
mov dword [ebp - 0x35c], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
cmp dword [ebp - 0xd8], 0
je 0x46c71b
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46c71b
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 0x4cc0a0
push 0x4c019c
push 0
call esi
test eax, eax
je 0x46c71b
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 0x46c725
mov dword [ebp - 0x37c], 0
push 4
push 0xffffffffffffffff
lea ecx, [ebp - 0x308]
call fcn.00414360
cmp dword [ebp - 0xd8], 0
je 0x46c7c4
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46c7c4
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 0x46c7c4
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 0x46c7ce
mov dword [ebp - 0x390], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4c4260
push 0xffffffffffffffff
call fcn.00415120
cmp dword [ebp - 0xd8], 0
je 0x46c875
lea ecx, [ebp - 0x308]
call fcn.00416d40
test al, al
je 0x46c875
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 0x4cc104
push 0x4c019c
push 0
call esi
test eax, eax
je 0x46c875
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 0x46c87f
mov dword [ebp - 0x384], 0
sub esp, 8
lea ecx, [ebp - 0x308]
push 0x4cc11c
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 0x46c8bc
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 - 0x36c]
mov ecx, esi
push 0
call fcn.00428440
test eax, eax
je 0x46e4e2
nop dword [eax]
mov eax, dword [esi + 0x22c]
cmp eax, 0xfffffffa
je 0x46e5db
lea ecx, [ebp - 0x308]
cmp dword [esi + 0x25c], ecx
jne 0x46d879
cmp eax, dword [ebp - 0x390]
je 0x46e5db
cmp eax, dword [ebp - 0x378]
jne 0x46cbbd
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46c949
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x38], 0
xor eax, eax
nop
inc eax
cmp word [eax*2 + 0x4cbfe8], 0
jne 0x46c950
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46c9a7
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4cbfe8]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46c990
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test eax, eax
jne 0x46c9d0
push 2
call fcn.0048a2cb
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 - 0x364]
mov ecx, esi
push dword [ebp - 0x378]
push eax
lea eax, [ebp - 0x308]
push eax
call fcn.0046e6b0
cmp dword [ebp - 0x58], 0
jne 0x46ca14
push 2
call fcn.0048a2cb
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 - 0x368], edi
test edi, edi
jne 0x46ca43
push 2
call fcn.0048a2cb
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 - 0x368], edi
mov esi, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test esi, esi
jne 0x46ca66
push 2
call fcn.0048a2cb
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 0x46ca98
cmp word [esi], cx
je 0x46ca98
nop dword [eax]
inc ecx
cmp word [esi + ecx*2], 0
jne 0x46ca90
xor eax, eax
test edi, edi
je 0x46caab
cmp word [edi], ax
je 0x46caab
mov edx, dword [ebp - 0x58]
add ecx, eax
test edx, edx
je 0x46caca
cmp eax, dword [ebp - 0x38c]
jne 0x46cdd6
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46cbd9
push eax
call fcn.00489f13
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 0x46cc0a
push 2
call fcn.0048a2cb
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 - 0x364]
mov ecx, esi
push dword [ebp - 0x378]
push eax
lea eax, [ebp - 0x308]
push eax
call fcn.0046e6b0
cmp dword [ebp - 0x58], 0
jne 0x46cc4e
push 2
call fcn.0048a2cb
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 - 0x368], edi
test edi, edi
jne 0x46cc7d
push 2
call fcn.0048a2cb
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 - 0x368], edi
mov esi, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test esi, esi
jne 0x46cca0
push 2
call fcn.0048a2cb
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 0x46ccd8
cmp word [esi], cx
je 0x46ccd8
nop word [eax + eax]
inc ecx
cmp word [esi + ecx*2], 0
jne 0x46ccd0
xor eax, eax
test edi, edi
je 0x46cceb
cmp word [edi], ax
je 0x46cceb
inc eax
cmp word [edi + eax*2], 0
jne 0x46cce3
mov edx, dword [ebp - 0x58]
add ecx, eax
test edx, edx
je 0x46cd0a
xor eax, eax
cmp word [edx], ax
je 0x46cd08
lea eax, [ecx + 1]
mov dword [ebp - 0x360], ecx
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048a2cb
mov edx, dword [ebp - 0x34]
add esp, 4
mov dword [ebp - 0x68], eax
mov ecx, eax
test edx, edx
je 0x46cd59
cmp eax, dword [ebp - 0x388]
jne 0x46d046
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46cdf2
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x38], 0
xor eax, eax
nop dword [eax + eax]
inc eax
cmp word [eax*2 + 0x4cbfc4], 0
jne 0x46ce00
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46ce57
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4cbfc4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46ce40
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test eax, eax
jne 0x46ce80
push 2
call fcn.0048a2cb
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 - 0x364]
mov ecx, esi
push dword [ebp - 0x378]
push eax
lea eax, [ebp - 0x308]
push eax
call fcn.0046e6b0
cmp dword [ebp - 0x58], 0
jne 0x46cec4
push 2
call fcn.0048a2cb
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 - 0x368], edi
test edi, edi
jne 0x46cef3
push 2
call fcn.0048a2cb
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 - 0x368], edi
mov esi, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test esi, esi
jne 0x46cf16
push 2
call fcn.0048a2cb
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 0x46cf48
cmp eax, dword [ebp - 0x370]
jne 0x46d2b6
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46d062
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x38], 0
xor eax, eax
nop dword [eax + eax]
inc eax
cmp word [eax*2 + 0x4cbfd4], 0
jne 0x46d070
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46d0c7
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4cbfd4]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46d0b0
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test eax, eax
jne 0x46d0f0
push 2
call fcn.0048a2cb
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 - 0x364]
mov ecx, esi
push dword [ebp - 0x378]
push eax
lea eax, [ebp - 0x308]
push eax
call fcn.0046e6b0
cmp dword [ebp - 0x58], 0
jne 0x46d134
push 2
call fcn.0048a2cb
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 - 0x368], edi
test edi, edi
jne 0x46d163
push 2
call fcn.0048a2cb
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 - 0x368], edi
mov esi, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test esi, esi
jne 0x46d186
cmp eax, dword [ebp - 0x3b8]
jne 0x46d526
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46d2d2
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 0x38], 0
xor eax, eax
nop dword [eax + eax]
inc eax
cmp word [eax*2 + 0x4cc148], 0
jne 0x46d2e0
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.0048a2cb
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
mov dword [ebp - 0x40], edx
test eax, eax
jle 0x46d337
nop word [eax + eax]
mov ax, word [ecx*2 + 0x4cc148]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
cmp ecx, eax
jl 0x46d320
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 0x38], 1
test eax, eax
jne 0x46d360
push 2
call fcn.0048a2cb
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 - 0x364]
mov ecx, esi
push dword [ebp - 0x378]
push eax
lea eax, [ebp - 0x308]
push eax
call fcn.0046e6b0
cmp dword [ebp - 0x58], 0
jne 0x46d3a4
push 2
call fcn.0048a2cb
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 - 0x368], edi
test edi, edi
jne 0x46d3d3
mov ecx, dword [ebp - 0x364]
cmp eax, ecx
je 0x46d61f
cmp eax, dword [ebp - 0x3b4]
je 0x46d61f
cmp eax, dword [ebp - 0x3b0]
je 0x46d61f
cmp eax, dword [ebp - 0x3ac]
je 0x46d61f
cmp eax, dword [ebp - 0x3a8]
je 0x46d61f
cmp eax, dword [ebp - 0x3a4]
je 0x46d61f
mov eax, dword [ebp - 0x4c]
test eax, eax
jne 0x46d644
push 2
call fcn.0048a2cb
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 - 0x364]
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.0046e6b0
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x368], edi
test edi, edi
jne 0x46d693
push 2
call fcn.0048a2cb
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 - 0x368], edi
cmp dword [ebp - 0x58], 0
mov byte [ebp - 0x38], 1
jne 0x46d6b2
push 2
call fcn.0048a2cb
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 0x46d6d5
push 2
call fcn.0048a2cb
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 0x46d708
push 0
mov ecx, esi
call fcn.00428440
test eax, eax
jne 0x46c900
jmp 0x46e4e2
mov edi, dword [ebp - 0x58]
mov esi, 1
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x46e4fa
push eax
call fcn.00489f13
add esp, 4
test edi, edi
je 0x46e507
push edi
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x46e517
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x46e527
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x90]
test eax, eax
je 0x46e53a
push eax
call fcn.00489f13
add esp, 4
push dword [ebp - 0x9c]
call fcn.00489f13
add esp, 4
lea ecx, [ebp - 0x308]
mov byte [ebp - 4], 0x1a
call fcn.0040c540
mov eax, dword [ebp - 0x2cc]
test eax, eax
je 0x46e56a
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x1f8]
test eax, eax
je 0x46e57d
push eax
call fcn.00489f13
add esp, 4
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ebp - 0x328]
test ecx, ecx
je 0x46e5b8
test eax, eax
je 0x46e60e
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 0x46e60e
push eax
call fcn.00489f13
add esp, 4
jmp 0x46e60e
or esi, 0xffffffff
jmp 0x46e4ea
mov byte [ebp - 0x7c], 0
push ecx
mov ecx, dword [ebp - 0x36c]
push 0x1c2
push 0x96
lea eax, [ecx + 0x2a8]
push eax
push 0
push 0x4cb070
call fcn.00432ac0
or esi, 0xffffffff
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x46e61e
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x46e62e
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x46e641
push eax
call fcn.00489f13
add esp, 4
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x46e651
push eax
call fcn.00489f13
add esp, 4
mov eax, esi
jmp 0x46e678
push ecx
push 0x1c2
push 0x96
lea eax, [esi + 0x2a8]
push eax
push 0
push 0x4c3bf8
mov ecx, esi
call fcn.00432ac0
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.00489f05
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret