Function at 0x4101f0
Capabilities:
Get file size
Read file on windows

Disassembly:
sub esp, 0xd88
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [esp + 0xd98]
push edi
mov edi, dword [sym.imp.SHLWAPI.dll_StrCpyW]
lea eax, [esi + 0x618]
push ecx
push eax
mov dword [esp + 0x30], esi
call edi
mov edx, dword [esp + 0xda0]
push edx
push esi
call edi
mov ecx, dword [esp + 0xda4]
lea eax, [esi + 0x410]
push ecx
push eax
call edi
lea edx, [esp + 0x380]
push 0x104
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [esp + 0x380]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea ecx, [esp + 0x380]
lea edx, [esp + 0x588]
push ecx
push edx
call edi
lea eax, [esp + 0x588]
push str.static.json
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [esp + 0x588]
push 0x41ca48
push ecx
call dword [sym.imp.MSVCRT.dll__wfopen]
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x38], ebx
je 0x4116d2
mov edi, dword [sym.imp.MSVCRT.dll_fseek]
push 2
push 0
push ebx
call edi
push ebx
call dword [sym.imp.MSVCRT.dll_ftell]
mov esi, eax
lea edx, [esi + 1]
push edx
call dword [sym.imp.MSVCRT.dll_malloc]
mov ebp, eax
add esp, 0x14
test ebp, ebp
mov dword [esp + 0x3c], ebp
jne 0x4102e3
push ebx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd88
ret 0x10
push 0
push 0
push ebx
call edi
push ebx
push esi
push 1
push ebp
call dword [sym.imp.MSVCRT.dll_fread]
mov byte [esi + ebp], 0
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x7d]
mov byte [esp + 0x7c], 0
push ebp
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
call fcn.0040f7b0
mov ebp, eax
add esp, 0x20
test ebp, ebp
mov dword [esp + 0x1c], ebp
je 0x4114ca
cmp dword [ebp + 4], 1
jne 0x410355
mov ebx, dword [ebp + 8]
xor eax, eax
test ebx, ebx
jbe 0x410355
mov edx, dword [ebp + 0xc]
mov esi, dword [edx]
mov edi, str.update_url
mov ecx, 0xb
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x410367
inc eax
add edx, 8
cmp eax, ebx
jb 0x410337
mov ebp, dword [esp + 0x1c]
mov eax, 0x41d5b0
cmp dword [eax + 4], 5
je 0x410378
mov eax, 0x41cf84
jmp 0x41037b
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x1c]
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x41035a
mov eax, dword [eax + 0xc]
mov edx, dword [esp + 0x28]
push edx
push eax
call fcn.0040fe70
mov eax, dword [ebp + 4]
add esp, 8
cmp eax, 1
jne 0x4103bb
mov ebx, dword [ebp + 8]
xor eax, eax
test ebx, ebx
jbe 0x4103bb
mov edx, dword [ebp + 0xc]
mov esi, dword [edx]
mov edi, str.game_url
mov ecx, 9
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x4103cd
inc eax
add edx, 8
cmp eax, ebx
jb 0x41039d
mov ebp, dword [esp + 0x1c]
mov eax, 0x41d5b0
cmp dword [eax + 4], 5
je 0x4103de
mov eax, 0x41cf84
jmp 0x4103e1
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x1c]
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x4103c0
mov eax, dword [eax + 0xc]
mov edx, dword [esp + 0x28]
lea ecx, [edx + 0x410]
push ecx
push eax
call fcn.0040fe70
mov eax, dword [ebp + 4]
add esp, 8
cmp eax, 1
jne 0x410427
mov ebx, dword [ebp + 8]
xor eax, eax
test ebx, ebx
jbe 0x410427
mov edx, dword [ebp + 0xc]
mov esi, dword [edx]
mov edi, str.loading
mov ecx, 8
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x410439
inc eax
add edx, 8
cmp eax, ebx
jb 0x410409
mov ebp, dword [esp + 0x1c]
mov eax, 0x41d5b0
cmp dword [eax + 4], 5
je 0x410446
mov eax, 0x41cf84
jmp 0x410449
mov ebp, dword [esp + 0x1c]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x41042c
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x28]
add ecx, 0x820
push ecx
push eax
call fcn.0040fe70
mov eax, dword [ebp + 4]
add esp, 8
cmp eax, 1
jne 0x41048f
mov ebx, dword [ebp + 8]
xor eax, eax
test ebx, ebx
jbe 0x41048f
mov edx, dword [ebp + 0xc]
mov esi, dword [edx]
mov edi, str.first_window
mov ecx, 0xd
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x4104db
inc eax
add edx, 8
cmp eax, ebx
jb 0x410471
mov ebp, dword [esp + 0x1c]
mov eax, 0x41d5b0
cmp dword [eax + 4], 5
jne 0x4104a9
mov eax, dword [eax + 0xc]
push eax
lea eax, [esp + 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [ebp + 4], 1
jne 0x4104fb
mov ebx, dword [ebp + 8]
xor eax, eax
test ebx, ebx
jbe 0x4104fb
mov edx, dword [ebp + 0xc]
mov esi, dword [edx]
mov edi, str.windows
mov ecx, 8
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x4104ea
inc eax
add edx, 8
cmp eax, ebx
jb 0x4104bb
mov ebp, dword [esp + 0x1c]
jmp 0x4104fb
mov edx, dword [esp + 0x1c]
mov ebp, edx
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x410494
mov ebp, dword [esp + 0x1c]
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + eax*8 + 4]
mov dword [esp + 0x30], ecx
jmp 0x410503
mov dword [esp + 0x30], 0x41d5b0
mov edx, dword [esp + 0x30]
cmp dword [edx + 4], 1
jne 0x4114c1
mov eax, edx
mov ecx, dword [esp + 0x28]
mov esi, dword [eax + 8]
mov dword [ecx + 0x818], esi
lea edx, [esi*8]
sub edx, esi
shl edx, 4
add edx, esi
lea eax, [esi + edx*2]
lea ecx, [eax*8 + 4]
push ecx
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
test eax, eax
je 0x410564
mov dword [eax], esi
dec esi
lea ebx, [eax + 4]
test esi, esi
mov edi, ebx
jl 0x410566
inc esi
mov ecx, edi
call fcn.00411850
add edi, 0x718
dec esi
jne 0x410552
jmp 0x410566
xor ebx, ebx
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], 0
mov dword [edx + 0x81c], ebx
mov ecx, dword [eax + 8]
test ecx, ecx
jbe 0x4114c1
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
lea ecx, [esi*8]
mov eax, dword [ebx + 0x81c]
sub ecx, esi
shl ecx, 4
add ecx, esi
lea edx, [esi + ecx*2]
mov ecx, dword [edi + 0xc]
lea ebp, [eax + edx*8]
mov edx, dword [ecx + esi*8]
push edx
push ebp
mov dword [esp + 0x1c], ebp
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x60]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4105d5
mov dword [ebx + 0xa28], esi
mov ecx, dword [edi + 0xc]
mov esi, dword [ecx + esi*8 + 4]
mov dword [esp + 0x10], esi
cmp dword [esi + 4], 1
jne 0x4114a5
mov ecx, esi
xor eax, eax
mov ebx, dword [ecx + 8]
test ebx, ebx
jbe 0x410616
mov edx, dword [ecx + 0xc]
mov esi, dword [edx]
mov edi, str.defSize
mov ecx, 8
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x41063d
inc eax
add edx, 8
cmp eax, ebx
jb 0x4105f8
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, 0x41d5b0
mov ecx, dword [eax + 4]
mov edx, 2
cmp ecx, edx
jne 0x410679
mov ecx, dword [eax + 8]
cmp ecx, edx
jb 0x410679
test ecx, ecx
jbe 0x41064e
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx]
jmp 0x410653
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x41061f
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [ebp + 0x44], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x41066e
cmp dword [eax + 8], 1
jbe 0x41066e
mov edx, dword [eax + 0xc]
mov eax, dword [edx + 4]
jmp 0x410673
mov eax, 0x41d5b0
mov eax, dword [eax + 8]
mov dword [ebp + 0x48], eax
cmp dword [edi + 4], 1
jne 0x4106ad
mov ebx, dword [edi + 8]
xor eax, eax
test ebx, ebx
jbe 0x4106ad
mov edx, dword [edi + 0xc]
mov esi, dword [edx]
mov edi, str.maxSize
mov ecx, 8
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x4106d0
inc eax
add edx, 8
cmp eax, ebx
jb 0x41068b
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, 0x41d5b0
mov ecx, dword [eax + 4]
mov edx, 2
cmp ecx, edx
jne 0x410718
mov ecx, dword [eax + 8]
cmp ecx, edx
jb 0x410718
test ecx, ecx
jbe 0x4106e5
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx]
jmp 0x4106ea
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x4106b2
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [ebp + 0x4c], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x41070b
cmp dword [eax + 8], 1
jbe 0x41070b
mov edx, dword [eax + 0xc]
mov eax, dword [edx + 4]
mov eax, dword [eax + 8]
mov dword [ebp + 0x50], eax
jmp 0x41073a
mov eax, 0x41d5b0
mov eax, dword [eax + 8]
mov dword [ebp + 0x50], eax
jmp 0x41073a
mov ecx, dword [ebp + 0x4c]
mov eax, dword [ebp + 0x44]
cmp ecx, eax
jge 0x410729
mov dword [ebp + 0x4c], 0x780
mov edx, dword [ebp + 0x50]
mov eax, dword [ebp + 0x48]
cmp edx, eax
jge 0x41073a
mov dword [ebp + 0x50], 0x438
cmp dword [edi + 4], 1
jne 0x41076e
mov ebx, dword [edi + 8]
xor eax, eax
test ebx, ebx
jbe 0x41076e
mov edx, dword [edi + 0xc]
mov esi, dword [edx]
mov edi, str.margin
mov ecx, 7
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x4107ca
inc eax
add edx, 8
cmp eax, ebx
jb 0x41074c
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, 0x41d5b0
fld qword [eax + 8]
fst qword [ebp + 0x58]
fcomp qword [0x4199d0]
fnstsw ax
test ah, 0x40
je 0x410794
mov dword [ebp + 0x58], 0x9999999a
mov dword [ebp + 0x5c], 0x3fb99999
cmp dword [edi + 4], 1
jne 0x4107f2
mov ebx, dword [edi + 8]
xor eax, eax
test ebx, ebx
jbe 0x4107f2
mov edx, dword [edi + 0xc]
mov esi, dword [edx]
mov edi, str.startMax
mov ecx, 9
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x4107df
inc eax
add edx, 8
cmp eax, ebx
jb 0x4107a6
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
jmp 0x4107f2
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x410773
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edi, edx
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x4107f7
mov eax, 0x41d5b0
mov ecx, dword [eax + 8]
test ecx, ecx
setne al
mov byte [ebp + 0x708], al
mov eax, dword [edi + 4]
cmp eax, 1
jne 0x41083b
mov ebx, dword [edi + 8]
xor eax, eax
test ebx, ebx
jbe 0x41083b
mov edx, dword [edi + 0xc]
mov esi, dword [edx]
mov edi, str.use9Matrix
mov ecx, 0xb
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x410883
inc eax
add edx, 8
cmp eax, ebx
jb 0x410819
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, 0x41d5b0
mov ecx, dword [eax + 8]
test ecx, ecx
setne dl
mov byte [ebp + 0x40], dl
mov eax, dword [edi + 4]
cmp eax, 1
jne 0x4108ad
mov ebx, dword [edi + 8]
xor eax, eax
test ebx, ebx
jbe 0x4108ad
mov edx, dword [edi + 0xc]
mov esi, dword [edx]
mov edi, str.cursor
mov ecx, 7
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x410898
inc eax
add edx, 8
cmp eax, ebx
jb 0x41085f
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
jmp 0x4108ad
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x410840
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x4108b2
mov eax, 0x41d5b0
cmp dword [eax + 4], 5
je 0x4108bf
mov eax, 0x41cf84
jmp 0x4108c2
mov eax, dword [eax + 0xc]
lea edx, [ebp + 0x60]
push edx
push eax
call fcn.0040fe70
mov eax, dword [edi + 4]
add esp, 8
cmp eax, 1
jne 0x410905
mov ebx, dword [edi + 8]
xor eax, eax
test ebx, ebx
jbe 0x410905
mov edx, dword [edi + 0xc]
mov esi, dword [edx]
mov edi, str.resizable
mov ecx, 0xa
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x41094d
inc eax
add edx, 8
cmp eax, ebx
jb 0x4108e3
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, 0x41d5b0
mov ecx, dword [eax + 8]
test ecx, ecx
setne dl
mov byte [ebp + 0x41], dl
mov eax, dword [edi + 4]
cmp eax, 1
jne 0x410977
mov ebx, dword [edi + 8]
xor eax, eax
test ebx, ebx
jbe 0x410977
mov edx, dword [edi + 0xc]
mov esi, dword [edx]
mov edi, str.next
mov ecx, 5
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x410962
inc eax
add edx, 8
cmp eax, ebx
jb 0x410929
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
jmp 0x410977
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x41090a
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x41097c
mov eax, 0x41d5b0
cmp dword [eax + 4], 5
je 0x410989
mov eax, 0x41cf84
jmp 0x41098c
mov eax, dword [eax + 0xc]
lea edx, [ebp + 0x20]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [edi + 4], 1
jne 0x4109cb
mov ebx, dword [edi + 8]
xor eax, eax
test ebx, ebx
jbe 0x4109cb
mov edx, dword [edi + 0xc]
mov esi, dword [edx]
mov edi, str.background
mov ecx, 0xb
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x4109dd
inc eax
add edx, 8
cmp eax, ebx
jb 0x4109a9
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, 0x41d5b0
cmp dword [eax + 4], 5
je 0x4109f2
mov eax, 0x41cf84
jmp 0x4109f5
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x4109d0
mov eax, dword [eax + 0xc]
lea edx, [esp + 0x790]
push edx
push eax
call fcn.0040fe70
add esp, 8
lea eax, [esp + 0x380]
lea esi, [ebp + 0x268]
push eax
push esi
call dword [sym.imp.SHLWAPI.dll_StrCpyW]
lea ecx, [esp + 0x790]
push ecx
push esi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
cmp dword [edi + 4], 1
jne 0x410a5e
mov ebx, dword [edi + 8]
xor eax, eax
test ebx, ebx
jbe 0x410a5e
mov edx, dword [edi + 0xc]
mov esi, dword [edx]
mov edi, str.elements
mov ecx, 9
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x410a70
inc eax
add edx, 8
cmp eax, ebx
jb 0x410a3c
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, 0x41d5b0
cmp dword [eax + 4], 5
je 0x410a83
mov eax, 0x41cf84
jmp 0x410a86
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edi, edx
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x410a63
mov eax, dword [eax + 0xc]
lea ecx, [esp + 0x790]
push ecx
push eax
call fcn.0040fe70
add esp, 8
lea edx, [esp + 0x380]
lea esi, [ebp + 0x470]
push edx
push esi
call dword [sym.imp.SHLWAPI.dll_StrCpyW]
lea eax, [esp + 0x790]
push eax
push esi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
cmp dword [edi + 4], 1
jne 0x410aef
mov ebx, dword [edi + 8]
xor eax, eax
test ebx, ebx
jbe 0x410aef
mov edx, dword [edi + 0xc]
mov esi, dword [edx]
mov edi, str.border
mov ecx, 7
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x410b1b
inc eax
add edx, 8
cmp eax, ebx
jb 0x410acd
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, 0x41d5b0
mov ecx, dword [eax + 4]
mov edx, 2
cmp ecx, edx
jne 0x410ba6
mov ecx, dword [eax + 8]
cmp ecx, 4
jb 0x410ba6
test ecx, ecx
jbe 0x410b30
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx]
jmp 0x410b35
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x410af4
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [ebp + 0x678], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x410b53
cmp dword [eax + 8], 1
jbe 0x410b53
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 4]
jmp 0x410b58
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [ebp + 0x67c], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x410b75
cmp dword [eax + 8], edx
jbe 0x410b75
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 8]
jmp 0x410b7a
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [ebp + 0x680], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x410b98
cmp dword [eax + 8], 3
jbe 0x410b98
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
jmp 0x410b9d
mov eax, 0x41d5b0
mov ecx, dword [eax + 8]
mov dword [ebp + 0x684], ecx
cmp dword [edi + 4], 1
je 0x410bb6
mov dword [esp + 0x24], 0x41d5b0
jmp 0x410bed
mov ebx, dword [edi + 8]
xor eax, eax
test ebx, ebx
jbe 0x410be0
mov edx, dword [edi + 0xc]
mov esi, dword [edx]
mov edi, str.buttons
mov ecx, 8
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x410c35
inc eax
add edx, 8
cmp eax, ebx
jb 0x410bc2
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x24], 0x41d5b0
mov edx, 2
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 4], edx
jne 0x411240
mov edx, ecx
mov esi, dword [edx + 8]
mov eax, esi
mov dword [ebp + 0x70c], esi
shl eax, 4
add eax, esi
shl eax, 2
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x410c4a
dec esi
mov edi, ebx
test esi, esi
jl 0x410c4c
inc esi
mov ecx, edi
call fcn.00411810
add edi, 0x44
dec esi
jne 0x410c26
jmp 0x410c4c
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
mov dword [esp + 0x24], eax
jmp 0x410be8
xor ebx, ebx
mov ecx, dword [esp + 0x24]
mov dword [ebp + 0x710], ebx
mov dword [esp + 0x2c], 0
mov eax, dword [ecx + 8]
test eax, eax
jbe 0x411240
mov ecx, dword [esp + 0x2c]
mov esi, dword [ebp + 0x710]
mov edx, ecx
shl edx, 4
add edx, ecx
lea ebp, [esi + edx*4]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ebp
cmp dword [edx + 4], 2
jne 0x410c9b
test ecx, ecx
jl 0x410c9b
cmp ecx, eax
jae 0x410c9b
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*4]
jmp 0x410ca0
mov ebx, 0x41d5b0
mov eax, dword [ebx + 4]
mov dword [esp + 0x20], ebx
cmp eax, 1
jne 0x411224
mov ecx, dword [ebx + 8]
xor eax, eax
test ecx, ecx
jbe 0x410cdd
mov edx, dword [ebx + 0xc]
mov esi, dword [edx]
mov edi, str.func
mov ecx, 5
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x410d0d
mov ecx, dword [ebx + 8]
inc eax
add edx, 8
cmp eax, ecx
jb 0x410cbc
mov ebp, dword [esp + 0x18]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
mov eax, 0x41d5b0
mov ecx, dword [eax + 4]
mov esi, 0x41cf84
cmp ecx, 5
jne 0x410cf8
mov esi, dword [eax + 0xc]
push str.minimize
push esi
call edi
test eax, eax
jne 0x410d20
mov dword [ebp + 0x40], 1
jmp 0x410d62
mov ecx, dword [ebx + 0xc]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
mov ebp, dword [esp + 0x18]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x410ce8
push str.maximize
push esi
call edi
test eax, eax
jne 0x410d35
mov dword [ebp + 0x40], 2
jmp 0x410d62
push str.close
push esi
call edi
test eax, eax
jne 0x410d46
mov dword [ebp + 0x40], eax
jmp 0x410d62
push str.refresh
push esi
call edi
test eax, eax
jne 0x410d5b
mov dword [ebp + 0x40], 3
jmp 0x410d62
mov dword [ebp + 0x40], 0xffffffff
cmp dword [ebx + 4], 1
jne 0x410d95
mov ecx, dword [ebx + 8]
xor eax, eax
test ecx, ecx
jbe 0x410d95
mov edx, dword [ebx + 0xc]
mov esi, dword [edx]
mov edi, str.coord
mov ecx, 6
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x410db8
mov ecx, dword [ebx + 8]
inc eax
add edx, 8
cmp eax, ecx
jb 0x410d74
mov ebp, dword [esp + 0x18]
mov eax, 0x41d5b0
mov ecx, dword [eax + 4]
mov edx, 2
cmp ecx, edx
jne 0x410df0
mov ecx, dword [eax + 8]
cmp ecx, edx
jb 0x410df0
test ecx, ecx
jbe 0x410dc5
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx]
jmp 0x410dca
mov ecx, dword [ebx + 0xc]
mov ebp, dword [esp + 0x18]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x410d9a
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [ebp], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x410de5
cmp dword [eax + 8], 1
jbe 0x410de5
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
jmp 0x410dea
mov eax, 0x41d5b0
mov ecx, dword [eax + 8]
mov dword [ebp + 4], ecx
cmp dword [ebx + 4], 1
jne 0x410e28
mov ecx, dword [ebx + 8]
xor eax, eax
test ecx, ecx
jbe 0x410e28
mov edx, dword [ebx + 0xc]
mov esi, dword [edx]
mov edi, str.size
mov ecx, 5
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x410e44
mov ecx, dword [ebx + 8]
inc eax
add edx, 8
cmp eax, ecx
jb 0x410e02
mov ebp, dword [esp + 0x18]
mov edx, 2
mov eax, 0x41d5b0
cmp dword [eax + 4], edx
jne 0x410e81
mov ecx, dword [eax + 8]
cmp ecx, edx
jb 0x410e81
test ecx, ecx
jbe 0x410e56
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx]
jmp 0x410e5b
mov ecx, dword [ebx + 0xc]
mov ebp, dword [esp + 0x18]
mov edx, 2
mov eax, dword [ecx + eax*8 + 4]
jmp 0x410e2d
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [ebp + 8], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x410e76
cmp dword [eax + 8], 1
jbe 0x410e76
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
jmp 0x410e7b
mov eax, 0x41d5b0
mov ecx, dword [eax + 8]
mov dword [ebp + 0xc], ecx
cmp dword [ebx + 4], 1
jne 0x410eb9
mov ecx, dword [ebx + 8]
xor eax, eax
test ecx, ecx
jbe 0x410eb9
mov edx, dword [ebx + 0xc]
mov esi, dword [edx]
mov edi, str.normal
mov ecx, 7
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x410ed5
mov ecx, dword [ebx + 8]
inc eax
add edx, 8
cmp eax, ecx
jb 0x410e93
mov ebp, dword [esp + 0x18]
mov edx, 2
mov eax, 0x41d5b0
cmp dword [eax + 4], edx
jne 0x410f12
mov ecx, dword [eax + 8]
cmp ecx, edx
jb 0x410f12
test ecx, ecx
jbe 0x410ee7
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx]
jmp 0x410eec
mov ecx, dword [ebx + 0xc]
mov ebp, dword [esp + 0x18]
mov edx, 2
mov eax, dword [ecx + eax*8 + 4]
jmp 0x410ebe
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [ebp + 0x10], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x410f07
cmp dword [eax + 8], 1
jbe 0x410f07
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
jmp 0x410f0c
mov eax, 0x41d5b0
mov ecx, dword [eax + 8]
mov dword [ebp + 0x14], ecx
cmp dword [ebx + 4], 1
jne 0x410f4a
mov ecx, dword [ebx + 8]
xor eax, eax
test ecx, ecx
jbe 0x410f4a
mov edx, dword [ebx + 0xc]
mov esi, dword [edx]
mov edi, str.hove
mov ecx, 5
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x410f66
mov ecx, dword [ebx + 8]
inc eax
add edx, 8
cmp eax, ecx
jb 0x410f24
mov ebp, dword [esp + 0x18]
mov edx, 2
mov eax, 0x41d5b0
cmp dword [eax + 4], edx
jne 0x410fa3
mov ecx, dword [eax + 8]
cmp ecx, edx
jb 0x410fa3
test ecx, ecx
jbe 0x410f78
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx]
jmp 0x410f7d
mov ecx, dword [ebx + 0xc]
mov ebp, dword [esp + 0x18]
mov edx, 2
mov eax, dword [ecx + eax*8 + 4]
jmp 0x410f4f
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [ebp + 0x18], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x410f98
cmp dword [eax + 8], 1
jbe 0x410f98
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
jmp 0x410f9d
mov eax, 0x41d5b0
mov ecx, dword [eax + 8]
mov dword [ebp + 0x1c], ecx
cmp dword [ebx + 4], 1
je 0x410fb0
mov eax, 0x41d5b0
jmp 0x410fe8
mov ebp, dword [ebx + 8]
xor eax, eax
test ebp, ebp
jbe 0x410fda
mov edx, dword [ebx + 0xc]
mov esi, dword [edx]
mov edi, str.pressed
mov ecx, 8
xor ebx, ebx
repe cmpsb byte [esi], byte es:[edi]
je 0x410fff
inc eax
add edx, 8
cmp eax, ebp
jb 0x410fbc
mov ebx, dword [esp + 0x20]
mov eax, 0x41d5b0
mov ebp, dword [esp + 0x18]
mov edx, 2
cmp dword [eax + 4], edx
jne 0x411037
mov ecx, dword [eax + 8]
cmp ecx, edx
jb 0x411037
test ecx, ecx
jbe 0x41100c
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx]
jmp 0x411011
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x410fdf
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [ebp + 0x20], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x41102c
cmp dword [eax + 8], 1
jbe 0x41102c
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
jmp 0x411031
mov eax, 0x41d5b0
mov ecx, dword [eax + 8]
mov dword [ebp + 0x24], ecx
cmp dword [ebx + 4], 1
je 0x411044
mov eax, 0x41d5b0
jmp 0x41107c
mov ebp, dword [ebx + 8]
xor eax, eax
test ebp, ebp
jbe 0x41106e
mov edx, dword [ebx + 0xc]
mov esi, dword [edx]
mov edi, str.alter
mov ecx, 6
xor ebx, ebx
repe cmpsb byte [esi], byte es:[edi]
je 0x411093
inc eax
add edx, 8
cmp eax, ebp
jb 0x411050
mov ebx, dword [esp + 0x20]
mov eax, 0x41d5b0
mov ebp, dword [esp + 0x18]
mov edx, 2
cmp dword [eax + 4], edx
jne 0x4110cd
mov ecx, dword [eax + 8]
cmp ecx, edx
jb 0x4110cd
test ecx, ecx
jbe 0x4110a0
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx]
jmp 0x4110a5
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x411073
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [ebp + 0x28], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x4110c3
cmp dword [eax + 8], 1
jbe 0x4110c3
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
jmp 0x4110d6
mov eax, 0x41d5b0
mov ecx, dword [eax + 8]
jmp 0x4110d6
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], ecx
mov eax, dword [ebx + 4]
cmp eax, 1
je 0x4110e8
mov eax, 0x41d5b0
jmp 0x411120
mov ebp, dword [ebx + 8]
xor eax, eax
test ebp, ebp
jbe 0x411112
mov edx, dword [ebx + 0xc]
mov esi, dword [edx]
mov edi, str.alter_hove
mov ecx, 0xb
xor ebx, ebx
repe cmpsb byte [esi], byte es:[edi]
je 0x411137
inc eax
add edx, 8
cmp eax, ebp
jb 0x4110f4
mov ebx, dword [esp + 0x20]
mov eax, 0x41d5b0
mov ebp, dword [esp + 0x18]
mov edx, 2
cmp dword [eax + 4], edx
jne 0x411171
mov ecx, dword [eax + 8]
cmp ecx, edx
jb 0x411171
test ecx, ecx
jbe 0x411144
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx]
jmp 0x411149
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + eax*8 + 4]
jmp 0x411117
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [ebp + 0x30], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x411167
cmp dword [eax + 8], 1
jbe 0x411167
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
jmp 0x41117a
mov eax, 0x41d5b0
mov ecx, dword [eax + 8]
jmp 0x41117a
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], ecx
mov eax, dword [ebx + 4]
cmp eax, 1
je 0x41118c
mov eax, 0x41d5b0
jmp 0x4111c4
mov ebp, dword [ebx + 8]
xor eax, eax
test ebp, ebp
jbe 0x4111b6
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x20], edx
mov esi, dword [edx]
mov edi, str.alter_pressed
mov ecx, 0xe
xor ebx, ebx
repe cmpsb byte [esi], byte es:[edi]
je 0x4111db
inc eax
add edx, 8
cmp eax, ebp
jb 0x41119c
mov eax, 0x41d5b0
mov ebp, dword [esp + 0x18]
mov edx, 2
cmp dword [eax + 4], edx
jne 0x411218
mov ecx, dword [eax + 8]
cmp ecx, edx
jb 0x411218
test ecx, ecx
jbe 0x4111e5
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx]
jmp 0x4111ea
mov edx, dword [esp + 0x20]
mov eax, dword [edx + eax*8 + 4]
jmp 0x4111bb
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [ebp + 0x38], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x41120b
cmp dword [eax + 8], 1
jbe 0x41120b
mov edx, dword [eax + 0xc]
mov eax, dword [edx + 4]
mov eax, dword [eax + 8]
mov dword [ebp + 0x3c], eax
jmp 0x411224
mov eax, 0x41d5b0
mov eax, dword [eax + 8]
mov dword [ebp + 0x3c], eax
jmp 0x411224
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x24]
mov dword [ebp + 0x38], ecx
mov dword [ebp + 0x3c], edx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x14]
inc ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], ecx
cmp ecx, eax
jb 0x410c69
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 4], 1
jne 0x41127c
mov ebx, dword [ecx + 8]
xor eax, eax
test ebx, ebx
jbe 0x41127c
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x2c], edx
mov esi, dword [edx]
mov edi, str.matrix
mov ecx, 7
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x411307
inc eax
add edx, 8
cmp eax, ebx
jb 0x41125a
mov ebp, dword [esp + 0x14]
mov esi, 0x41d5b0
mov dword [esp + 0x24], esi
cmp dword [esi + 4], 1
jne 0x4114a5
lea edx, [esp + 0x40]
lea edi, [ebp + 0x68c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x40], str.topleft
mov dword [esp + 0x44], 0x41cb88
mov dword [esp + 0x48], str.topright
mov dword [esp + 0x4c], str.left
mov dword [esp + 0x50], str.right
mov dword [esp + 0x54], str.bottomleft
mov dword [esp + 0x58], str.bottom
mov dword [esp + 0x5c], str.bottomright
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], 8
mov edx, 2
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
cmp eax, 1
mov dword [esp + 0x10], ecx
je 0x41131c
mov eax, 0x41d5b0
jmp 0x411379
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x14]
mov esi, dword [ecx + eax*8 + 4]
mov dword [esp + 0x24], esi
jmp 0x411285
mov edx, dword [esi + 8]
xor ebp, ebp
test edx, edx
jbe 0x41136b
mov edi, dword [esi + 0xc]
mov esi, dword [esp + 0x10]
mov eax, dword [edi]
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x411352
test cl, cl
je 0x41134e
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x411352
add eax, 2
add esi, 2
test cl, cl
jne 0x41132e
xor eax, eax
jmp 0x411357
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x411399
inc ebp
add edi, 8
cmp ebp, edx
jb 0x411328
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x14]
mov eax, 0x41d5b0
mov edx, 2
cmp dword [eax + 4], edx
jne 0x41141c
mov ecx, dword [eax + 8]
cmp ecx, 4
jb 0x41141c
test ecx, ecx
jbe 0x4113b3
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx]
jmp 0x4113b8
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov edx, 2
mov eax, dword [esi + 0xc]
mov eax, dword [eax + ebp*8 + 4]
mov ebp, dword [esp + 0x14]
jmp 0x411379
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [edi - 4], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x4113d3
cmp dword [eax + 8], 1
jbe 0x4113d3
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 4]
jmp 0x4113d8
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [edi], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x4113f1
cmp dword [eax + 8], edx
jbe 0x4113f1
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 8]
jmp 0x4113f6
mov ecx, 0x41d5b0
mov ecx, dword [ecx + 8]
mov dword [edi + 4], ecx
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x411411
cmp dword [eax + 8], 3
jbe 0x411411
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
jmp 0x411416
mov eax, 0x41d5b0
mov ecx, dword [eax + 8]
mov dword [edi + 8], ecx
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
add ebx, 4
add edi, 0x10
dec eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], eax
jne 0x4112ee
mov ecx, dword [ebp + 0x698]
mov eax, dword [ebp + 0x6a0]
mov ebx, dword [ebp + 0x6e8]
mov edi, dword [ebp + 0x6f0]
mov esi, dword [ebp + 0x6bc]
mov edx, dword [ebp + 0x6c4]
inc ecx
dec eax
inc ebx
mov dword [ebp + 0x698], ecx
mov ecx, dword [ebp + 0x6cc]
dec edi
mov dword [ebp + 0x6a0], eax
mov eax, dword [ebp + 0x6d4]
inc esi
dec edx
inc ecx
dec eax
mov dword [ebp + 0x6e8], ebx
mov dword [ebp + 0x6f0], edi
mov dword [ebp + 0x6bc], esi
mov dword [ebp + 0x6c4], edx
mov dword [ebp + 0x6cc], ecx
mov dword [ebp + 0x6d4], eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
inc eax
mov ecx, dword [edx + 8]
mov dword [esp + 0x34], eax
cmp eax, ecx
jb 0x410587
mov ebp, dword [esp + 0x1c]
push ebp
call fcn.0040f7e0
add esp, 4
mov eax, dword [esp + 0x3c]
push eax
call dword [sym.imp.MSVCRT.dll_free]
mov ecx, dword [esp + 0x3c]
push ecx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 8
lea edx, [esp + 0x380]
lea eax, [esp + 0x588]
push edx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCpyW]
lea ecx, [esp + 0x588]
push str.channel
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0
push 0x80
push 3
push 0
push 1
lea edx, [esp + 0x59c]
push SysReAllocString
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4116c9
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x182]
mov word [esp + 0x180], 0
cmp esi, 0xff
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
jbe 0x41156b
mov esi, 0xff
lea eax, [esp + 0x3c]
push 0
push eax
lea ecx, [esp + 0x88]
push esi
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edx, [esp + 0x80]
push 0x7c
push edx
mov byte [esp + esi + 0x88], 0
call dword [sym.imp.SHLWAPI.dll_StrChrA]
mov edi, eax
test edi, edi
je 0x4115fc
mov ecx, edi
lea edx, [esp + 0x80]
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [esp + 0x180]
sub ecx, edx
push 0x100
push eax
inc ecx
lea eax, [esp + 0x88]
push ecx
push eax
push 0
push 0
mov byte [edi], 0
call ebx
mov ecx, dword [esp + 0x28]
sub esi, edi
push 0x100
inc edi
lea eax, [ecx + 0x618]
lea edx, [esp + esi + 0x85]
push eax
push edx
push edi
push 0
push 0
call ebx
jmp 0x41161d
lea eax, [esp + 0x180]
push 0x100
inc esi
push eax
lea ecx, [esp + 0x88]
push esi
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea edx, [esp + 0x38]
push 0x2000
lea eax, [esp + 0xb9c]
push edx
lea ecx, [esp + 0x188]
push eax
push ecx
mov dword [esp + 0x48], 0x100
call dword [sym.imp.SHLWAPI.dll_UrlEscapeW]
lea edx, [esp + 0xb98]
lea eax, [esp + 0x180]
push edx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCpyW]
call fcn.0040fe90
test eax, eax
je 0x411685
mov ecx, dword [esp + 0xda8]
push eax
push ecx
lea edx, [esp + 0x9a0]
push str._version_dmachine_code_sfn
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x4116a3
mov eax, dword [esp + 0xda8]
lea ecx, [esp + 0x998]
push eax
push str._version_dfn
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
mov eax, dword [esp + 0x28]
mov edi, dword [sym.imp.SHLWAPI.dll_StrCatW]
lea edx, [esp + 0x998]
lea esi, [eax + 0x410]
push edx
push esi
call edi
lea ecx, [esp + 0x180]
push ecx
push esi
call edi
mov ecx, dword [esp + 0x28]
call fcn.004116e0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd88
ret 0x10