Function at 0x403510
Capabilities:
Accept command line arguments
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x415b4c
mov eax, dword fs:[0]
push eax
sub esp, 0x4e0
mov eax, dword [0x41f04c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
xor edi, edi
xor eax, eax
mov byte [ebp - 0x4bd], 0
mov dword [ebp - 0x4ac], edi
mov dword [ebp - 0x4a8], 7
mov word [ebp - 0x4bc], ax
xorps xmm0, xmm0
mov dword [ebp - 4], eax
movlpd qword [ebp - 0x4a0], xmm0
push 0x40
mov dword [ebp - 0x4a0], eax
mov dword [ebp - 0x49c], eax
call fcn.00408ce6
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x4a0], eax
lea eax, [ebp - 0x420]
mov byte [ebp - 4], 1
push eax
push 0x208
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x40578a
cmp dword [esi + 0x14], 8
jb 0x4035c0
mov esi, dword [esi]
lea eax, [ebp - 0x4a4]
push eax
push esi
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, 1
mov edi, eax
mov dword [ebp - 0x4c4], edi
mov dword [ebp - 0x4c8], esi
cmp dword [ebp - 0x4a4], esi
jle 0x403c0d
nop dword [eax]
mov edx, dword [edi + esi*4]
mov ecx, edx
lea edi, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403600
sub ecx, edi
sar ecx, 1
lea eax, [ecx + 1]
push eax
push edx
call fcn.0040ca0d
mov edx, dword [ebp - 0x4c4]
add esp, 8
xor eax, eax
mov dword [ebp - 0x458], 0
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], ax
mov edx, dword [edx + esi*4]
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403647
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x468]
call fcn.004032f0
lea edx, [ebp - 0x468]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x438]
call fcn.004059f0
mov byte [ebp - 4], 3
lea edi, [ebp - 0x438]
cmp dword [ebp - 0x424], 8
mov eax, dword [ebp - 0x438]
setae byte [ebp - 0x4be]
mov dword [ebp - 0x4cc], eax
cmovae edi, eax
cmp dword [ebp - 0x428], 2
jne 0x4036df
movzx ecx, word [edi]
mov esi, 0x69
mov edx, 2
mov eax, 0x41bfb4
cmp ecx, esi
jb 0x4036df
sub edi, eax
cmp cx, si
ja 0x4036df
cmp edx, 1
je 0x4037b5
movzx ecx, word [eax + edi + 2]
add eax, 2
dec edx
movzx esi, word [eax]
cmp cx, si
jae 0x4036c3
xor al, al
test al, al
jne 0x4037bc
mov byte [ebp - 4], 2
cmp byte [ebp - 0x4be], al
je 0x403730
mov ecx, dword [ebp - 0x424]
mov edx, dword [ebp - 0x4cc]
mov eax, edx
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x403726
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057d2
push ecx
push edx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x454]
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
cmp edx, 8
jb 0x403791
mov ecx, dword [ebp - 0x468]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403787
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057d2
push edx
push ecx
call fcn.00408cd8
add esp, 8
mov esi, dword [ebp - 0x4c8]
mov edi, dword [ebp - 0x4c4]
inc esi
mov dword [ebp - 0x4c8], esi
cmp esi, dword [ebp - 0x4a4]
jge 0x403c0d
jmp 0x4035f0
mov al, 1
jmp 0x4036e1
lea edx, [ebp - 0x468]
lea ecx, [ebp - 0x480]
call fcn.00405bb0
mov byte [ebp - 4], 4
mov eax, 0x7ffffffe
mov ecx, dword [ebp - 0x470]
sub eax, ecx
mov dword [ebp - 0x4cc], ecx
cmp eax, 4
jb 0x4057cd
cmp dword [ebp - 0x46c], 8
lea eax, [ebp - 0x480]
lea edx, [ecx + 4]
mov dword [ebp - 0x488], 0
cmovae eax, dword [ebp - 0x480]
lea edi, [ebp - 0x498]
mov esi, 7
mov dword [ebp - 0x4d4], eax
mov dword [ebp - 0x484], 0
mov dword [ebp - 0x4c8], edx
cmp edx, esi
jbe 0x4038d1
mov esi, edx
or esi, 7
cmp esi, 0x7ffffffe
jbe 0x40384b
mov esi, 0x7ffffffe
jmp 0x403855
mov eax, 0xa
cmp esi, eax
cmovb esi, eax
xor ecx, ecx
mov eax, esi
add eax, 1
setb cl
neg ecx
or ecx, eax
cmp ecx, 0x7fffffff
ja 0x4057d7
add ecx, ecx
cmp ecx, 0x1000
jb 0x4038a6
lea eax, [ecx + 0x23]
cmp eax, ecx
jbe 0x4057d7
push eax
call fcn.00408ce6
add esp, 4
test eax, eax
je 0x4057d2
mov edx, dword [ebp - 0x4c8]
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x4038bf
test ecx, ecx
je 0x4038bd
push ecx
call fcn.00408ce6
mov edx, dword [ebp - 0x4c8]
add esp, 4
mov edi, eax
jmp 0x4038bf
xor edi, edi
mov ecx, dword [ebp - 0x4cc]
mov eax, dword [ebp - 0x4d4]
mov dword [ebp - 0x498], edi
mov dword [ebp - 0x484], esi
lea esi, [ecx + ecx]
push esi
push eax
push edi
mov dword [ebp - 0x488], edx
call fcn.0040a1e0
mov eax, dword [str..ini]
xor ecx, ecx
mov dword [edi + esi], eax
add esp, 0xc
mov eax, dword [0x41bfc0]
mov dword [edi + esi + 4], eax
mov eax, dword [ebp - 0x4cc]
mov word [edi + eax*2 + 8], cx
mov byte [ebp - 4], 5
xor eax, eax
mov dword [ebp - 0x440], ecx
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x43c], 7
lea edx, [ecx + 2]
mov word [ebp - 0x450], ax
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403930
sub ecx, edx
lea eax, [ebp - 0x420]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x450]
call fcn.004032f0
lea eax, [ebp - 0x498]
mov byte [ebp - 4], 6
push eax
lea edx, [ebp - 0x450]
lea ecx, [ebp - 0x4ec]
call fcn.00408516
mov esi, eax
lea eax, [ebp - 0x4bc]
cmp eax, esi
je 0x4039ff
mov edx, dword [ebp - 0x4a8]
cmp edx, 8
jb 0x4039be
mov ecx, dword [ebp - 0x4bc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4039b4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057d2
push edx
push ecx
call fcn.00408cd8
add esp, 8
mov dword [ebp - 0x4ac], 0
xor eax, eax
mov dword [ebp - 0x4a8], 7
mov word [ebp - 0x4bc], ax
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x4bc], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x4ac], xmm0
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 7
mov word [esi], ax
mov edx, dword [ebp - 0x4d8]
cmp edx, 8
jb 0x403a3f
mov ecx, dword [ebp - 0x4ec]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403a35
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057d2
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x43c]
mov dword [ebp - 0x4dc], 0
mov dword [ebp - 0x4d8], 7
mov word [ebp - 0x4ec], ax
cmp edx, 8
jb 0x403aa0
mov ecx, dword [ebp - 0x450]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403a96
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057d2
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x484]
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
cmp edx, 8
jb 0x403b01
mov ecx, dword [ebp - 0x498]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403af7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057d2
push edx
push ecx
call fcn.00408cd8
add esp, 8
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x46c]
cmp edx, 8
jb 0x403b45
mov ecx, dword [ebp - 0x480]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403b3b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057dc
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x424]
mov dword [ebp - 0x470], 0
mov dword [ebp - 0x46c], 7
mov word [ebp - 0x480], ax
cmp edx, 8
jb 0x403ba6
mov ecx, dword [ebp - 0x438]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403b9c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057dc
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x454]
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
cmp edx, 8
jb 0x403c07
mov ecx, dword [ebp - 0x468]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403bfd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057dc
push edx
push ecx
call fcn.00408cd8
add esp, 8
mov edi, dword [ebp - 0x4c4]
cmp dword [ebp - 0x4ac], 0
je 0x40578a
cmp dword [ebp - 0x4a8], 8
lea eax, [ebp - 0x4bc]
cmovae eax, dword [ebp - 0x4bc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40578a
push 9
xor eax, eax
mov dword [ebp - 0x488], 0
push str.defaultDp
lea ecx, [ebp - 0x498]
mov dword [ebp - 0x484], 7
mov word [ebp - 0x498], ax
call fcn.004032f0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x450]
push 2
xor eax, eax
mov dword [ebp - 0x440], 0
push 0x41bfc8
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
call fcn.004032f0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x480]
push 0xe
xor eax, eax
mov dword [ebp - 0x470], 0
push str.ProviderTarget
mov dword [ebp - 0x46c], 7
mov word [ebp - 0x480], ax
call fcn.004032f0
lea eax, [ebp - 0x4bc]
mov byte [ebp - 4], 9
push eax
push 0x207
lea eax, [ebp - 0x498]
push eax
lea eax, [ebp - 0x450]
push eax
lea edx, [ebp - 0x480]
lea ecx, [ebp - 0x438]
call fcn.0040888b
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x468]
push 2
xor eax, eax
mov dword [ebp - 0x458], 0
push 0x41bfc8
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], ax
call fcn.004032f0
lea eax, [ebp - 0x468]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x4a0]
call fcn.004023a0
mov esi, eax
lea eax, [ebp - 0x438]
cmp esi, eax
je 0x403dd5
mov ecx, dword [esi + 0x14]
cmp ecx, 8
jb 0x403d8f
mov eax, dword [esi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x403d85
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057e1
mov eax, edx
push ecx
push eax
call fcn.00408cd8
add esp, 8
mov dword [esi + 0x10], 0
xor eax, eax
mov word [esi], ax
xor ecx, ecx
mov dword [esi + 0x14], 7
movups xmm0, xmmword [ebp - 0x438]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x428]
movq qword [esi + 0x10], xmm0
mov dword [ebp - 0x428], eax
mov eax, 7
mov dword [ebp - 0x424], eax
mov word [ebp - 0x438], cx
jmp 0x403ddb
mov eax, dword [ebp - 0x424]
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x454]
cmp edx, 8
jb 0x403e25
mov ecx, dword [ebp - 0x468]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403e15
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057e1
push edx
push ecx
call fcn.00408cd8
mov eax, dword [ebp - 0x424]
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x458], 0
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], cx
mov byte [ebp - 4], 9
cmp eax, 8
jb 0x403e80
mov ecx, dword [ebp - 0x438]
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403e76
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057e1
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x46c]
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
cmp edx, 8
jb 0x403ee1
mov ecx, dword [ebp - 0x480]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403ed7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057e1
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x43c]
mov dword [ebp - 0x470], 0
mov dword [ebp - 0x46c], 7
mov word [ebp - 0x480], ax
cmp edx, 8
jb 0x403f42
mov ecx, dword [ebp - 0x450]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403f38
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057e1
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x484]
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
cmp edx, 8
jb 0x403fa3
mov ecx, dword [ebp - 0x498]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403f99
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057e1
push edx
push ecx
call fcn.00408cd8
add esp, 8
push 9
xor eax, eax
mov dword [ebp - 0x488], 0
push str.defaultId
lea ecx, [ebp - 0x498]
mov dword [ebp - 0x484], 7
mov word [ebp - 0x498], ax
call fcn.004032f0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x450]
push 2
xor eax, eax
mov dword [ebp - 0x440], 0
push 0x41bfb4
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
call fcn.004032f0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x480]
push 0xe
xor eax, eax
mov dword [ebp - 0x470], 0
push str.ProviderTarget
mov dword [ebp - 0x46c], 7
mov word [ebp - 0x480], ax
call fcn.004032f0
lea eax, [ebp - 0x4bc]
mov byte [ebp - 4], 0xe
push eax
push 0x207
lea eax, [ebp - 0x498]
push eax
lea eax, [ebp - 0x450]
push eax
lea edx, [ebp - 0x480]
lea ecx, [ebp - 0x438]
call fcn.0040888b
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x468]
push 2
xor eax, eax
mov dword [ebp - 0x458], 0
push 0x41bfb4
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], ax
call fcn.004032f0
lea eax, [ebp - 0x468]
mov byte [ebp - 4], 0x10
push eax
lea ecx, [ebp - 0x4a0]
call fcn.004023a0
mov esi, eax
lea eax, [ebp - 0x438]
cmp esi, eax
je 0x40413b
mov ecx, dword [esi + 0x14]
cmp ecx, 8
jb 0x4040f5
mov eax, dword [esi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x4040eb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057e6
mov eax, edx
push ecx
push eax
call fcn.00408cd8
add esp, 8
mov dword [esi + 0x10], 0
xor eax, eax
mov word [esi], ax
xor ecx, ecx
mov dword [esi + 0x14], 7
movups xmm0, xmmword [ebp - 0x438]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x428]
movq qword [esi + 0x10], xmm0
mov dword [ebp - 0x428], eax
mov eax, 7
mov dword [ebp - 0x424], eax
mov word [ebp - 0x438], cx
jmp 0x404141
mov eax, dword [ebp - 0x424]
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x454]
cmp edx, 8
jb 0x40418b
mov ecx, dword [ebp - 0x468]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40417b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057e6
push edx
push ecx
call fcn.00408cd8
mov eax, dword [ebp - 0x424]
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x458], 0
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], cx
mov byte [ebp - 4], 0xe
cmp eax, 8
jb 0x4041e6
mov ecx, dword [ebp - 0x438]
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4041dc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057e6
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x46c]
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
cmp edx, 8
jb 0x404247
mov ecx, dword [ebp - 0x480]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40423d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057e6
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x43c]
mov dword [ebp - 0x470], 0
mov dword [ebp - 0x46c], 7
mov word [ebp - 0x480], ax
cmp edx, 8
jb 0x4042a8
mov ecx, dword [ebp - 0x450]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40429e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057e6
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x484]
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
cmp edx, 8
jb 0x404309
mov ecx, dword [ebp - 0x498]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4042ff
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057e6
push edx
push ecx
call fcn.00408cd8
add esp, 8
push 0xd
xor eax, eax
mov dword [ebp - 0x488], 0
push str.defaultAction
lea ecx, [ebp - 0x498]
mov dword [ebp - 0x484], 7
mov word [ebp - 0x498], ax
call fcn.004032f0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x450]
push 6
xor eax, eax
mov dword [ebp - 0x440], 0
push 0x41c018
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
call fcn.004032f0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x480]
push 0xe
xor eax, eax
mov dword [ebp - 0x470], 0
push str.ProviderTarget
mov dword [ebp - 0x46c], 7
mov word [ebp - 0x480], ax
call fcn.004032f0
lea eax, [ebp - 0x4bc]
mov byte [ebp - 4], 0x13
push eax
push 0x207
lea eax, [ebp - 0x498]
push eax
lea eax, [ebp - 0x450]
push eax
lea edx, [ebp - 0x480]
lea ecx, [ebp - 0x438]
call fcn.0040888b
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x468]
push 6
xor eax, eax
mov dword [ebp - 0x458], 0
push 0x41c018
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], ax
call fcn.004032f0
lea eax, [ebp - 0x468]
mov byte [ebp - 4], 0x15
push eax
lea ecx, [ebp - 0x4a0]
call fcn.004023a0
mov esi, eax
lea eax, [ebp - 0x438]
cmp esi, eax
je 0x4044a1
mov ecx, dword [esi + 0x14]
cmp ecx, 8
jb 0x40445b
mov eax, dword [esi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x404451
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057eb
mov eax, edx
push ecx
push eax
call fcn.00408cd8
add esp, 8
mov dword [esi + 0x10], 0
xor eax, eax
mov word [esi], ax
xor ecx, ecx
mov dword [esi + 0x14], 7
movups xmm0, xmmword [ebp - 0x438]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x428]
movq qword [esi + 0x10], xmm0
mov dword [ebp - 0x428], eax
mov eax, 7
mov dword [ebp - 0x424], eax
mov word [ebp - 0x438], cx
jmp 0x4044a7
mov eax, dword [ebp - 0x424]
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x454]
cmp edx, 8
jb 0x4044f1
mov ecx, dword [ebp - 0x468]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4044e1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057eb
push edx
push ecx
call fcn.00408cd8
mov eax, dword [ebp - 0x424]
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x458], 0
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], cx
mov byte [ebp - 4], 0x13
cmp eax, 8
jb 0x40454c
mov ecx, dword [ebp - 0x438]
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404542
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057eb
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x46c]
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
cmp edx, 8
jb 0x4045ad
mov ecx, dword [ebp - 0x480]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4045a3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057eb
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x43c]
mov dword [ebp - 0x470], 0
mov dword [ebp - 0x46c], 7
mov word [ebp - 0x480], ax
cmp edx, 8
jb 0x40460e
mov ecx, dword [ebp - 0x450]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404604
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057eb
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x484]
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
cmp edx, 8
jb 0x40466f
mov ecx, dword [ebp - 0x498]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404665
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057eb
push edx
push ecx
call fcn.00408cd8
add esp, 8
push 0xb
xor eax, eax
mov dword [ebp - 0x488], 0
push str.defaultType
lea ecx, [ebp - 0x498]
mov dword [ebp - 0x484], 7
mov word [ebp - 0x498], ax
call fcn.004032f0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x450]
push 4
xor eax, eax
mov dword [ebp - 0x440], 0
push 0x41c044
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
call fcn.004032f0
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x480]
push 0xe
xor eax, eax
mov dword [ebp - 0x470], 0
push str.ProviderTarget
mov dword [ebp - 0x46c], 7
mov word [ebp - 0x480], ax
call fcn.004032f0
lea eax, [ebp - 0x4bc]
mov byte [ebp - 4], 0x18
push eax
push 0x207
lea eax, [ebp - 0x498]
push eax
lea eax, [ebp - 0x450]
push eax
lea edx, [ebp - 0x480]
lea ecx, [ebp - 0x438]
call fcn.0040888b
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x468]
push 4
xor eax, eax
mov dword [ebp - 0x458], 0
push 0x41c044
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], ax
call fcn.004032f0
lea eax, [ebp - 0x468]
mov byte [ebp - 4], 0x1a
push eax
lea ecx, [ebp - 0x4a0]
call fcn.004023a0
mov esi, eax
lea eax, [ebp - 0x438]
cmp esi, eax
je 0x404807
mov ecx, dword [esi + 0x14]
cmp ecx, 8
jb 0x4047c1
mov eax, dword [esi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x4047b7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057f0
mov eax, edx
push ecx
push eax
call fcn.00408cd8
add esp, 8
mov dword [esi + 0x10], 0
xor eax, eax
mov word [esi], ax
xor ecx, ecx
mov dword [esi + 0x14], 7
movups xmm0, xmmword [ebp - 0x438]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x428]
movq qword [esi + 0x10], xmm0
mov dword [ebp - 0x428], eax
mov eax, 7
mov dword [ebp - 0x424], eax
mov word [ebp - 0x438], cx
jmp 0x40480d
mov eax, dword [ebp - 0x424]
mov byte [ebp - 4], 0x19
mov edx, dword [ebp - 0x454]
cmp edx, 8
jb 0x404857
mov ecx, dword [ebp - 0x468]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404847
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057f0
push edx
push ecx
call fcn.00408cd8
mov eax, dword [ebp - 0x424]
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x458], 0
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], cx
mov byte [ebp - 4], 0x18
cmp eax, 8
jb 0x4048b2
mov ecx, dword [ebp - 0x438]
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4048a8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057f0
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x46c]
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
cmp edx, 8
jb 0x404913
mov ecx, dword [ebp - 0x480]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404909
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057f0
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x43c]
mov dword [ebp - 0x470], 0
mov dword [ebp - 0x46c], 7
mov word [ebp - 0x480], ax
cmp edx, 8
jb 0x404974
mov ecx, dword [ebp - 0x450]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40496a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057f0
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x484]
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
cmp edx, 8
jb 0x4049d5
mov ecx, dword [ebp - 0x498]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4049cb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057f0
push edx
push ecx
call fcn.00408cd8
add esp, 8
push 0xc
xor eax, eax
mov dword [ebp - 0x488], 0
push str.startmenuoem
lea ecx, [ebp - 0x498]
mov dword [ebp - 0x484], 7
mov word [ebp - 0x498], ax
call fcn.004032f0
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x450]
push 0xa
xor eax, eax
mov dword [ebp - 0x440], 0
push 0x41c068
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
call fcn.004032f0
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x480]
push 0xe
xor eax, eax
mov dword [ebp - 0x470], 0
push str.ProviderTarget
mov dword [ebp - 0x46c], 7
mov word [ebp - 0x480], ax
call fcn.004032f0
lea eax, [ebp - 0x4bc]
mov byte [ebp - 4], 0x1d
push eax
push 0x207
lea eax, [ebp - 0x498]
push eax
lea eax, [ebp - 0x450]
push eax
lea edx, [ebp - 0x480]
lea ecx, [ebp - 0x438]
call fcn.0040888b
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x468]
push 0xa
xor eax, eax
mov dword [ebp - 0x458], 0
push 0x41c068
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], ax
call fcn.004032f0
lea eax, [ebp - 0x468]
mov byte [ebp - 4], 0x1f
push eax
lea ecx, [ebp - 0x4a0]
call fcn.004023a0
mov esi, eax
lea eax, [ebp - 0x438]
cmp esi, eax
je 0x404b6d
mov ecx, dword [esi + 0x14]
cmp ecx, 8
jb 0x404b27
mov eax, dword [esi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x404b1d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057f5
mov eax, edx
push ecx
push eax
call fcn.00408cd8
add esp, 8
mov dword [esi + 0x10], 0
xor eax, eax
mov word [esi], ax
xor ecx, ecx
mov dword [esi + 0x14], 7
movups xmm0, xmmword [ebp - 0x438]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x428]
movq qword [esi + 0x10], xmm0
mov dword [ebp - 0x428], eax
mov eax, 7
mov dword [ebp - 0x424], eax
mov word [ebp - 0x438], cx
jmp 0x404b73
mov eax, dword [ebp - 0x424]
mov byte [ebp - 4], 0x1e
mov edx, dword [ebp - 0x454]
cmp edx, 8
jb 0x404bbd
mov ecx, dword [ebp - 0x468]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404bad
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057f5
push edx
push ecx
call fcn.00408cd8
mov eax, dword [ebp - 0x424]
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x458], 0
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], cx
mov byte [ebp - 4], 0x1d
cmp eax, 8
jb 0x404c18
mov ecx, dword [ebp - 0x438]
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404c0e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057f5
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x1c
mov edx, dword [ebp - 0x46c]
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
cmp edx, 8
jb 0x404c79
mov ecx, dword [ebp - 0x480]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404c6f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057f5
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x1b
mov edx, dword [ebp - 0x43c]
mov dword [ebp - 0x470], 0
mov dword [ebp - 0x46c], 7
mov word [ebp - 0x480], ax
cmp edx, 8
jb 0x404cda
mov ecx, dword [ebp - 0x450]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404cd0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057f5
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x484]
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
cmp edx, 8
jb 0x404d3b
mov ecx, dword [ebp - 0x498]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404d31
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057f5
push edx
push ecx
call fcn.00408cd8
add esp, 8
push 0xb
xor eax, eax
mov dword [ebp - 0x488], 0
push str.shortcutoem
lea ecx, [ebp - 0x498]
mov dword [ebp - 0x484], 7
mov word [ebp - 0x498], ax
call fcn.004032f0
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x450]
push 0xa
xor eax, eax
mov dword [ebp - 0x440], 0
push 0x41c09c
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
call fcn.004032f0
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x480]
push 0xe
xor eax, eax
mov dword [ebp - 0x470], 0
push str.ProviderTarget
mov dword [ebp - 0x46c], 7
mov word [ebp - 0x480], ax
call fcn.004032f0
lea eax, [ebp - 0x4bc]
mov byte [ebp - 4], 0x22
push eax
push 0x207
lea eax, [ebp - 0x498]
push eax
lea eax, [ebp - 0x450]
push eax
lea edx, [ebp - 0x480]
lea ecx, [ebp - 0x438]
call fcn.0040888b
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x468]
push 0xa
xor eax, eax
mov dword [ebp - 0x458], 0
push 0x41c09c
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], ax
call fcn.004032f0
lea eax, [ebp - 0x468]
mov byte [ebp - 4], 0x24
push eax
lea ecx, [ebp - 0x4a0]
call fcn.004023a0
mov esi, eax
lea eax, [ebp - 0x438]
cmp esi, eax
je 0x404ed3
mov ecx, dword [esi + 0x14]
cmp ecx, 8
jb 0x404e8d
mov eax, dword [esi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x404e83
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057fa
mov eax, edx
push ecx
push eax
call fcn.00408cd8
add esp, 8
mov dword [esi + 0x10], 0
xor eax, eax
mov word [esi], ax
xor ecx, ecx
mov dword [esi + 0x14], 7
movups xmm0, xmmword [ebp - 0x438]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x428]
movq qword [esi + 0x10], xmm0
mov dword [ebp - 0x428], eax
mov eax, 7
mov dword [ebp - 0x424], eax
mov word [ebp - 0x438], cx
jmp 0x404ed9
mov eax, dword [ebp - 0x424]
mov byte [ebp - 4], 0x23
mov edx, dword [ebp - 0x454]
cmp edx, 8
jb 0x404f23
mov ecx, dword [ebp - 0x468]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404f13
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057fa
push edx
push ecx
call fcn.00408cd8
mov eax, dword [ebp - 0x424]
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x458], 0
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], cx
mov byte [ebp - 4], 0x22
cmp eax, 8
jb 0x404f7e
mov ecx, dword [ebp - 0x438]
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404f74
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057fa
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x21
mov edx, dword [ebp - 0x46c]
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
cmp edx, 8
jb 0x404fdf
mov ecx, dword [ebp - 0x480]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404fd5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057fa
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x20
mov edx, dword [ebp - 0x43c]
mov dword [ebp - 0x470], 0
mov dword [ebp - 0x46c], 7
mov word [ebp - 0x480], ax
cmp edx, 8
jb 0x405040
mov ecx, dword [ebp - 0x450]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405036
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057fa
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x484]
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
cmp edx, 8
jb 0x4050a1
mov ecx, dword [ebp - 0x498]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405097
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057fa
push edx
push ecx
call fcn.00408cd8
add esp, 8
push 4
xor eax, eax
mov dword [ebp - 0x488], 0
push str.true
lea ecx, [ebp - 0x498]
mov dword [ebp - 0x484], 7
mov word [ebp - 0x498], ax
call fcn.004032f0
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x450]
push 5
xor eax, eax
mov dword [ebp - 0x440], 0
push 0x41c0cc
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
call fcn.004032f0
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x480]
push 0xe
xor eax, eax
mov dword [ebp - 0x470], 0
push str.ProviderTarget
mov dword [ebp - 0x46c], 7
mov word [ebp - 0x480], ax
call fcn.004032f0
lea eax, [ebp - 0x4bc]
mov byte [ebp - 4], 0x27
push eax
push 0x207
lea eax, [ebp - 0x498]
push eax
lea eax, [ebp - 0x450]
push eax
lea edx, [ebp - 0x480]
lea ecx, [ebp - 0x438]
call fcn.0040888b
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x468]
push 5
xor eax, eax
mov dword [ebp - 0x458], 0
push 0x41c0cc
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], ax
call fcn.004032f0
lea eax, [ebp - 0x468]
mov byte [ebp - 4], 0x29
push eax
lea ecx, [ebp - 0x4a0]
call fcn.004023a0
mov esi, eax
lea eax, [ebp - 0x438]
cmp esi, eax
je 0x405239
mov ecx, dword [esi + 0x14]
cmp ecx, 8
jb 0x4051f3
mov eax, dword [esi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x4051e9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057ff
mov eax, edx
push ecx
push eax
call fcn.00408cd8
add esp, 8
mov dword [esi + 0x10], 0
xor eax, eax
mov word [esi], ax
xor ecx, ecx
mov dword [esi + 0x14], 7
movups xmm0, xmmword [ebp - 0x438]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x428]
movq qword [esi + 0x10], xmm0
mov dword [ebp - 0x428], eax
mov eax, 7
mov dword [ebp - 0x424], eax
mov word [ebp - 0x438], cx
jmp 0x40523f
mov eax, dword [ebp - 0x424]
mov byte [ebp - 4], 0x28
mov edx, dword [ebp - 0x454]
cmp edx, 8
jb 0x405289
mov ecx, dword [ebp - 0x468]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405279
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057ff
push edx
push ecx
call fcn.00408cd8
mov eax, dword [ebp - 0x424]
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x458], 0
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], cx
mov byte [ebp - 4], 0x27
cmp eax, 8
jb 0x4052e4
mov ecx, dword [ebp - 0x438]
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4052da
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057ff
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x26
mov edx, dword [ebp - 0x46c]
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
cmp edx, 8
jb 0x405345
mov ecx, dword [ebp - 0x480]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40533b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057ff
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x25
mov edx, dword [ebp - 0x43c]
mov dword [ebp - 0x470], 0
mov dword [ebp - 0x46c], 7
mov word [ebp - 0x480], ax
cmp edx, 8
jb 0x4053a6
mov ecx, dword [ebp - 0x450]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40539c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057ff
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x484]
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
cmp edx, 8
jb 0x405407
mov ecx, dword [ebp - 0x498]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4053fd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057ff
push edx
push ecx
call fcn.00408cd8
add esp, 8
mov eax, 1
mov dword [ebp - 0x4cc], eax
cmp dword [ebp - 0x4a4], eax
jle 0x4056fd
nop
mov edx, dword [edi + eax*4]
xor eax, eax
mov ecx, edx
mov dword [ebp - 0x488], 0
mov dword [ebp - 0x484], 7
mov word [ebp - 0x498], ax
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405445
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x498]
call fcn.004032f0
lea edx, [ebp - 0x498]
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x450]
call fcn.004059f0
lea edx, [ebp - 0x498]
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x438]
call fcn.00405bb0
mov byte [ebp - 4], 0x2c
lea edi, [ebp - 0x450]
cmp dword [ebp - 0x43c], 8
cmovae edi, dword [ebp - 0x450]
cmp dword [ebp - 0x440], 2
jne 0x4054e3
movzx ecx, word [edi]
mov esi, 0x69
mov edx, 2
mov eax, 0x41bfb4
cmp ecx, esi
jb 0x4054e3
sub edi, eax
cmp cx, si
ja 0x4054e3
cmp edx, 1
je 0x405645
movzx ecx, word [eax + edi + 2]
add eax, 2
dec edx
movzx esi, word [eax]
cmp cx, si
jae 0x4054c7
lea eax, [ebp - 0x450]
push eax
lea ecx, [ebp - 0x4a0]
call fcn.00405ee0
mov ecx, eax
lea eax, [ebp - 0x438]
cmp ecx, eax
je 0x40551b
cmp dword [ebp - 0x424], 8
push dword [ebp - 0x428]
cmovae eax, dword [ebp - 0x438]
push eax
call fcn.004032f0
mov byte [ebp - 4], 0x2b
mov edx, dword [ebp - 0x424]
cmp edx, 8
jb 0x40555f
mov ecx, dword [ebp - 0x438]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405555
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057d2
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x2a
mov edx, dword [ebp - 0x43c]
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
cmp edx, 8
jb 0x4055c0
mov ecx, dword [ebp - 0x450]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4055b6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057d2
push edx
push ecx
call fcn.00408cd8
add esp, 8
xor eax, eax
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x484]
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
cmp edx, 8
jb 0x405621
mov ecx, dword [ebp - 0x498]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405617
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057d2
push edx
push ecx
call fcn.00408cd8
add esp, 8
mov eax, dword [ebp - 0x4cc]
inc eax
mov dword [ebp - 0x4cc], eax
cmp eax, dword [ebp - 0x4a4]
jge 0x4056fd
mov edi, dword [ebp - 0x4c4]
jmp 0x405420
push 6
xor eax, eax
mov dword [ebp - 0x458], 0
push str.itemId
lea ecx, [ebp - 0x468]
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], ax
call fcn.004032f0
lea eax, [ebp - 0x468]
mov byte [ebp - 4], 0x2d
push eax
lea ecx, [ebp - 0x4a0]
call fcn.004023a0
mov ecx, eax
lea eax, [ebp - 0x438]
cmp ecx, eax
je 0x4056b0
cmp dword [ebp - 0x424], 8
push dword [ebp - 0x428]
cmovae eax, dword [ebp - 0x438]
push eax
call fcn.004032f0
mov byte [ebp - 4], 0x2c
mov edx, dword [ebp - 0x454]
cmp edx, 8
jb 0x40551b
mov ecx, dword [ebp - 0x468]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4056ee
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4057d2
push edx
push ecx
call fcn.00408cd8
add esp, 8
jmp 0x40551b
push 8
call fcn.00408ce6
mov esi, eax
mov dword [ebp - 0x4d4], esi
mov byte [ebp - 4], 0x2e
xorps xmm0, xmm0
movq qword [esi], xmm0
push 0x40
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [ebp - 0x4d0], esi
mov dword [ebp - 0x4cc], esi
call fcn.00408ce6
add esp, 8
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [esi], eax
mov byte [ebp - 4], 0x2f
lea eax, [ebp - 0x4a0]
push dword [ebp - 0x4d4]
mov ecx, esi
push eax
call fcn.00407250
lea ecx, [ebp - 0x4d0]
mov dword [ebp - 0x4cc], 0
call fcn.00407220
mov edi, dword [ebp - 0x4c4]
mov dword [0x42058c], esi
mov byte [ebp - 0x4bd], 1
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea eax, [ebp - 0x4a0]
push eax
mov ecx, eax
call fcn.00402950
lea ecx, [ebp - 0x4bc]
call fcn.004034b0
mov al, byte [ebp - 0x4bd]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00408cc7
mov esp, ebp
pop ebp
ret 4
call fcn.00403130
call fcn.0040c73a
call fcn.00403270
call fcn.0040c73a
call fcn.0040c73a
call fcn.0040c73a
call fcn.0040c73a
call fcn.0040c73a
call fcn.0040c73a
call fcn.0040c73a
call fcn.0040c73a
int3