Function at 0x416d3a
Capabilities:
Get disk information
Get file size
Identify system language via api
Query service status
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4f4
push ebx
push esi
push edi
push 3
mov dword [esp + 0x150], 0xbeaa
lea ecx, [esp + 0x2c4]
xor edi, edi
mov dword [esp + 0xa4], 0xffffffff
pop ebx
inc edi
mov dword [esp + 0xf0], edi
mov dword [esp + 0x1c4], 0
push ebx
call fcn.00413c51
xor eax, eax
mov dword [esp + 0xfc], eax
jmp 0x416dab
mov edx, dword [esp + 0xfc]
mov ecx, dword [esp + 0x2c0]
mov dword [ecx + edx*4], 0xc411
inc dword [esp + 0xfc]
cmp dword [esp + 0xfc], ebx
jl 0x416d8f
push 2
pop esi
cmp dword [esp + 0x14c], eax
je 0x416f31
mov dword [esp + 0x48], 0xbbf9
lea edx, [esp + 0x14c]
mov dword [esp + 0xe8], 0xea0c8d46
lea ecx, [esp + 0xf0]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c4]
push eax
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0xac]
push eax
call fcn.004161f7
xor eax, eax
mov dword [esp + 0x58], esi
add esp, 0x10
cmp dword [esp + 0x48], eax
jl 0x416f3f
mov edi, dword [esp + 0x2c0]
mov dword [esp + 0x18], eax
jmp 0x416e3e
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x2d8], 0x30f13e0c
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jl 0x416e2b
mov ecx, dword [esp + 0x14c]
cmp dword [esp + 0xe8], eax
jne 0x416e58
mov ecx, dword [esp + 0x48]
mov ecx, dword [esp + 0xe8]
xor edx, edx
mov ecx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x48]
cmp dword [edi + 4], ecx
setge dl
mov dword [esp + 0x2dc], edx
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c0]
mov esi, dword [esp + 0x2dc]
add esi, dword [ecx + edx*4]
xor edx, edx
mov ecx, dword [esp + 0x48]
cmp esi, ecx
setl dl
cmp dword [esp + 0x48], edx
jne 0x416ea6
mov ecx, dword [esp + 0x2dc]
mov ecx, dword [esp + 0xa0]
xor edx, edx
mov ecx, dword [esp + 0xf0]
mov ecx, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2dc]
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0xf0]
cmp ecx, 8
push 3
setle dl
xor ebx, ebx
mov dword [esp + 0xec], edx
mov edx, dword [esp + 0xec]
mov ecx, dword [esp + 0xa4]
add edx, ecx
mov ecx, dword [esp + 0x4c]
cmp edx, ecx
setge bl
mov dword [esp + 0xa4], ebx
mov ecx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x1c8]
mov dword [esp + 0x24], 1
dec dword [esp + 0x4c]
pop ebx
jns 0x416e25
xor edi, edi
push 2
inc edi
pop esi
jmp 0x416f3f
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xa0], eax
lea ecx, [esp + 0x2c0]
call fcn.00413d23
mov eax, 0x3556
mov dword [esp + 0x424], eax
mov dword [esp + 0x428], eax
mov dword [esp + 0x42c], eax
mov dword [esp + 0x430], eax
call fcn.00416a44
xor eax, eax
mov byte [esp + 0xb5], al
cmp byte [esp + 0xb5], al
je 0x416f8b
push eax
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
push esi
lea ecx, [esp + 0x414]
call fcn.00413c51
xor eax, eax
mov dword [esp + 0x74], eax
jmp 0x416fb6
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x410]
mov dword [ecx + edx*4], 0x1713
inc dword [esp + 0x74]
cmp dword [esp + 0x74], esi
jl 0x416fa0
mov dword [esp + 0x74], eax
jmp 0x416fce
mov ecx, dword [esp + 0x74]
mov dword [esp + ecx*4 + 0x7c], ebx
inc dword [esp + 0x74]
cmp dword [esp + 0x74], edi
jl 0x416fc2
mov dword [esp + 0x7c], edi
cmp dword [esp + 0x7c], eax
jl 0x41707d
mov dword [esp + 0xac], 0x3880e033
mov dword [esp + 0x120], 0xfffffff6
mov dword [esp + 0x20c], 0xed562b99
mov ecx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x7c]
mov ecx, dword [esp + 0xac]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x120], 0xb0bf2465
mov dword [esp + 0xac], eax
jmp 0x41706a
mov ecx, dword [esp + 0xac]
mov ecx, dword [esp + 0x120]
sub ecx, esi
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x120], ecx
mov ecx, dword [esp + 0x120]
sub ecx, 0x411a
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x20c], ecx
inc dword [esp + 0xac]
cmp dword [esp + 0xac], edi
jle 0x41702e
dec dword [esp + 0x7c]
jns 0x416fe2
lea ecx, [esp + 0x410]
call fcn.00413d23
mov byte [esp + 0x17], 0
call fcn.004162f7
cmp byte [esp + 0x17], 0
je 0x4170a0
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [esp + 0xf8], 0x57fd5464
xor eax, eax
mov dword [esp + 0x2c], 0xfffffffd
mov dword [esp + 0x2c], 0xfffffff6
mov dword [esp + 0xf8], eax
jmp 0x4170e5
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x20], eax
dec dword [esp + 0x1b0]
cmp dword [esp + 0x20], eax
jne 0x4170ef
dec dword [esp + 0xf8]
cmp dword [esp + 0xf8], 0xfffffff3
jge 0x4170c6
mov dword [esp + 0x10], 0x37d45db3
lea ecx, [esp + 0x380]
mov dword [esp + 0x28], 0xa11600d5
push ebx
call fcn.00413c51
mov dword [esp + 0x24], 0xa12afd77
xor eax, eax
mov dword [esp + 0xc], edi
mov dword [esp + 0x1c], 0xbd791f9e
mov dword [esp + 0x2c], 0xfffffffa
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1b4], 0xb93b5720
mov dword [esp + 0x6c], eax
jmp 0x417151
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x380]
mov dword [ecx + edx*4], edi
inc dword [esp + 0x6c]
cmp dword [esp + 0x6c], ebx
jl 0x41713f
mov dword [esp + 0x6c], eax
jmp 0x417170
mov ecx, dword [esp + 0x6c]
mov dword [esp + ecx*4 + 0x248], 0xffffffff
inc dword [esp + 0x6c]
cmp dword [esp + 0x6c], 4
jl 0x41715d
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x10]
sub esi, ecx
mov ecx, dword [esp + 0x10]
neg esi
sbb esi, esi
add esi, 4
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
setg dl
xor ecx, ecx
imul edx, dword [esp + 0x10]
cmp ecx, edx
mov ecx, dword [esp + 0x380]
sbb edx, edx
neg edx
sub edx, 0x2db8e964
neg edx
sbb edx, edx
inc edx
mov dword [ecx + 8], edx
jne 0x4171c4
mov ecx, eax
cmp dword [esp + 0x28], eax
je 0x4171c6
mov ecx, edi
add ecx, 7
neg ecx
sbb ecx, ecx
xor ebx, ebx
neg ecx
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
neg edx
cmp edx, ecx
mov ecx, dword [esp + 0x10]
setg bl
xor edx, edx
cmp ebx, ecx
setg dl
xor ecx, ecx
cmp edx, 0x99da9727
sete cl
mov dword [esp + 0x24c], ecx
test ecx, ecx
jne 0x41720d
mov edx, eax
cmp dword [esp + 0x10], eax
je 0x41720f
mov edx, edi
xor ecx, ecx
cmp edx, 0xffffffff
mov edx, dword [esp + 0x10]
setg cl
sub edx, ecx
mov ecx, dword [esp + 0x10]
neg edx
sbb edx, edx
xor ebx, ebx
inc edx
cmp edx, ecx
mov ecx, dword [esp + 0x10]
setge bl
xor edx, edx
cmp ebx, ecx
setle dl
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x24c], eax
je 0x41735e
mov dword [esp + 0x18], 0xf21ddbc7
lea ecx, [esp + 0x258]
push 4
call fcn.00413c51
mov dword [esp + 0x54], 0
jmp 0x417287
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x258]
mov dword [eax + ecx*4], 0xc927db40
inc dword [esp + 0x54]
cmp dword [esp + 0x54], 4
jl 0x417271
mov dword [esp + 0x54], 0
jmp 0x4172ab
mov eax, dword [esp + 0x54]
mov dword [esp + eax*4 + 0x4b8], 0xfffd
inc dword [esp + 0x54]
cmp dword [esp + 0x54], 3
jl 0x417298
mov eax, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x24c]
cmp eax, 0xc256
mov eax, dword [esp + 0x254]
mov esi, dword [esp + 0x258]
setl dl
xor ecx, ecx
cmp eax, edx
setge cl
xor ebx, ebx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
imul ecx, dword [esi + 4]
mov eax, dword [esp + 0x1c]
cmp ecx, eax
mov eax, dword [esp + 0x258]
setge bl
sub ebx, dword [esi + 4]
neg ebx
sbb ebx, ebx
xor edx, edx
inc ebx
cmp ebx, dword [eax + 0xc]
setne dl
xor ecx, ecx
mov dword [esp + 0x4c0], edx
mov eax, dword [esp + 0x250]
cmp edx, eax
mov eax, dword [esp + 0x24c]
setg cl
xor edx, edx
sub ecx, eax
mov dword [esp + 0x248], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x258]
cmp ecx, dword [eax]
lea ecx, [esp + 0x258]
setne dl
mov dword [esi + 4], edx
mov dword [esp + 0x1c], edx
call fcn.00413d23
jmp 0x4173c8
mov dword [esp + 0x2c], 0xd949
mov dword [esp + 0x2c], 0x9f010208
mov dword [esp + 0x2c], 0x9523668f
mov dword [esp + 0x2c], 0xfc3c737e
mov dword [esp + 0x18], eax
jmp 0x417397
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x144], 0x81b93497
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x417384
dec dword [esp + 0x1b4]
mov byte [esp + 0x9c], al
cmp byte [esp + 0x9c], al
je 0x4173c8
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SaveDC]
lea ecx, [esp + 0x380]
call fcn.00413d23
call fcn.00415c26
mov dword [esp + 0x1c], 0x860b4ffb
xor eax, eax
mov dword [esp + 0x28], 0x4f27d270
mov dword [esp + 0xc], 0x4a41637c
mov dword [esp + 0x24], 0xfffffff8
mov dword [esp + 0x34], 0xc655ef1c
mov dword [esp + 0x18], eax
jmp 0x417418
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x164], edi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x417409
push 2
pop ebx
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], eax
jl 0x4174aa
mov dword [esp + 0x20], 0x3b28
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + ecx*4 + 0x164]
mov ecx, dword [esp + 0x1c]
cmp dword [esp + ecx*4 + 0x164], eax
jne 0x41745f
mov ecx, dword [esp + 0x1c]
mov esi, eax
mov ecx, dword [esp + ecx*4 + 0x164]
cmp dword [esp + 0x28], eax
je 0x417461
mov esi, edi
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + ecx*4 + 0x164]
neg ecx
mov dword [esp + 0xc], ecx
je 0x417481
mov ecx, dword [esp + 0x1c]
cmp dword [esp + ecx*4 + 0x164], eax
jne 0x417490
mov ecx, dword [esp + 0x1c]
mov edx, eax
cmp dword [esp + ecx*4 + 0x164], eax
je 0x417492
mov edx, edi
xor ecx, ecx
cmp esi, edx
setle cl
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x168], ecx
dec dword [esp + 0x1c]
jns 0x41742c
mov ecx, dword [esp + 0x164]
cmp dword [esp + 0xc], eax
jne 0x4174d7
cmp dword [esp + 0x24], eax
je 0x4174c1
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
xor edx, edx
cmp ecx, edi
setl dl
mov dword [esp + 0x164], edx
mov edx, eax
jmp 0x4174d9
mov edx, edi
xor ecx, ecx
cmp edx, 0x6fbc
setg cl
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], eax
je 0x4175f1
mov dword [esp + 0x30], 0xfffffffe
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], eax
jmp 0x41751f
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x3fc], 0xdd14a140
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jl 0x41750c
mov edx, dword [esp + 0x10]
xor ebx, ebx
mov ecx, dword [esp + 0x24]
cmp ecx, edx
mov ecx, dword [esp + 0x1c]
setge bl
cmp ebx, 0xaa7fcf62
sbb edx, edx
xor ebx, ebx
inc edx
cmp ecx, edx
mov ecx, dword [esp + 0x10]
setge bl
xor edx, edx
cmp ebx, ecx
setle dl
sub edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], edx
xor edx, edx
cmp dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x34]
setne dl
cmp edx, 0xfd6f6066
sbb edx, edx
xor ebx, ebx
inc edx
cmp edx, ecx
mov ecx, dword [esp + 0x30]
setg bl
xor edx, edx
cmp ebx, 3
setne dl
add ecx, 0x4378215c
add edx, ecx
xor ebx, ebx
mov ecx, dword [esp + 0x10]
cmp edx, ecx
mov ecx, dword [esp + 0x28]
setne bl
xor edx, edx
cmp ebx, ecx
setle dl
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x1c], 0xc9e48991
jb 0x4175bc
mov edx, edi
cmp dword [esp + 0x24], eax
jne 0x4175be
mov edx, eax
mov ecx, dword [esp + 0x30]
sub edx, ecx
sub edx, 0x1961266c
cmp dword [esp + 0xc], edx
jg 0x4175d8
mov esi, edi
cmp dword [esp + 0x10], eax
jne 0x4175da
mov esi, eax
mov ecx, dword [esp + 0x10]
xor edx, edx
cmp esi, ecx
push 2
sete dl
mov dword [esp + 0x400], edx
pop ebx
jmp 0x417628
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], eax
jl 0x417628
mov byte [esp + 0xaa], al
cmp byte [esp + 0xaa], 0
je 0x417622
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_EndPage]
xor eax, eax
dec dword [esp + 0x1c]
jns 0x4175fb
push dword [esp + 0x144]
lea ecx, [esp + 0x48c]
mov dword [esp + 0x27c], eax
push ecx
lea ecx, [esp + 0x480]
mov dword [esp + 0x284], eax
push ecx
xorps xmm0, xmm0
mov dword [esp + 0x28c], eax
push eax
lea ecx, [esp + 0x288]
movdqu xmmword [esp + 0x488], xmm0
call fcn.00415220
mov dword [esp + 0x20], 0x714a0256
xor eax, eax
mov dword [esp + 0x2c], 0x276b87d0
mov dword [esp + 0x10], eax
jmp 0x417698
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x224], 0x951ad386
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x417685
mov dword [esp + 0x10], eax
jmp 0x4176b3
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x448], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x4176a4
dec dword [esp + 0x44c]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x224], eax
call fcn.00416b2b
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x4176e8
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x4f0], edi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x4176d9
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x34], 0x3ea3a722
mov dword [esp + 0x18], eax
jmp 0x417714
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0xc0], 0x3342eb9
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jl 0x417701
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x1c], eax
jl 0x41788b
push dword [esp + 0x144]
movdqa xmm0, xmmword [0xaa5910]
lea ecx, [esp + 0x49c]
push ecx
lea ecx, [esp + 0x490]
mov dword [esp + 0x30], 0xfffffffa
push ecx
push eax
lea ecx, [esp + 0x278]
mov dword [esp + 0x278], eax
movdqu xmmword [esp + 0x498], xmm0
mov dword [esp + 0x27c], eax
mov dword [esp + 0x280], eax
call fcn.00415220
mov dword [esp + 0x28], 0xd065835a
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x18], 0
jmp 0x4177a7
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x1ac], 0xc511ec1f
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x417794
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0xc0]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0xc0]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0xc0]
cmp eax, 0x70b1
setne cl
cmp ecx, 0xf928
jne 0x4177eb
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0xc0]
mov eax, dword [esp + 0xc4]
xor edx, edx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0xc0]
mov eax, dword [esp + 0xc0]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + eax*4 + 0xc0]
mov eax, dword [esp + 0xc0]
cmp ecx, eax
sete dl
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x268]
mov dword [esp + 0x1ac], edi
mov dword [eax + 0xc], edi
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0xc0]
inc eax
je 0x417852
cmp dword [esp + 0x1ac], 0
je 0x417852
mov ecx, edi
jmp 0x417854
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0xc0], ecx
mov eax, dword [esp + 0x1c]
sub ecx, eax
inc ecx
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x268]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], eax
call fcn.00413d23
dec dword [esp + 0x1c]
push 0
pop eax
jns 0x417728
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x278]
mov dword [esp + 0xc4], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x278]
push 0xfffffffffffffff6
pop esi
mov dword [eax], esi
call fcn.00413d23
mov edi, dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
xor eax, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x8c], 0xb5cabfc3
mov dword [esp + 0x5c], eax
jmp 0x4178f7
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x4178f3
push eax
push 0x1015
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call edi
xor eax, eax
dec dword [esp + 0x5c]
cmp dword [esp + 0x5c], 0xffffffea
jg 0x4178cf
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x5c], 3
jl 0x417a61
mov dword [esp + 0x18], 0xffffffff
lea ecx, [esp + 0x398]
push ebx
call fcn.00413c51
xor eax, eax
mov dword [esp + 0x100], eax
jmp 0x417946
mov edx, dword [esp + 0x100]
mov ecx, dword [esp + 0x398]
or dword [ecx + edx*4], 0xffffffff
inc dword [esp + 0x100]
cmp dword [esp + 0x100], ebx
jl 0x41792d
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], esi
jge 0x417a44
xor ebx, ebx
inc ebx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x398]
mov dword [ecx], edx
mov dword [esp + 0x8c], eax
jmp 0x417a26
mov dword [esp + 0x134], 0x66a92721
mov byte [esp + 0x9e], al
cmp byte [esp + 0x9e], 0
je 0x4179b8
push eax
push eax
push 0x1a78
push 0x2127
push eax
call dword [sym.imp.USER32.dll_InsertMenuW]
xor eax, eax
mov dword [esp + 0x134], ebx
cmp dword [esp + 0x134], eax
jl 0x417a1f
mov dword [esp + 0x124], eax
mov dword [esp + 0x124], ebx
cmp dword [esp + 0x124], eax
jl 0x417a16
mov dword [esp + 0xc], eax
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], eax
jl 0x417a0d
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x417a07
push 0xeb4
push eax
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
xor eax, eax
dec dword [esp + 0xc]
jns 0x4179ed
dec dword [esp + 0x124]
jns 0x4179df
dec dword [esp + 0x134]
jns 0x4179c8
inc dword [esp + 0x8c]
cmp dword [esp + 0x8c], ebx
jle 0x417987
dec dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x417960
push 2
pop ebx
lea ecx, [esp + 0x398]
call fcn.00413d23
inc dword [esp + 0x5c]
cmp dword [esp + 0x5c], 3
jge 0x41790d
xor eax, eax
push 9
pop ecx
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x18], eax
jmp 0x417a99
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x1e8], 0x62fd
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jl 0x417a86
xor esi, esi
inc esi
mov dword [esp + 0x1d8], esi
cmp dword [esp + 0x1d8], eax
jl 0x417c2c
mov dword [esp + 0x17c], 0xffffffff
mov dword [esp + 0x180], 0xffffffff
mov dword [esp + 0x184], 0xffffffff
mov dword [esp + 0x188], 0xffffffff
mov dword [esp + 0x2c], 0x4d07ddbf
mov dword [esp + 0x188], esi
cmp dword [esp + 0x188], eax
jl 0x417c1c
push 4
lea ecx, [esp + 0x360]
call fcn.00413c51
push esi
lea ecx, [esp + 0x3b4]
call fcn.00413c51
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x60], eax
jmp 0x417b37
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x35c]
mov dword [ecx + edx*4], esi
inc dword [esp + 0x60]
cmp dword [esp + 0x60], 4
jl 0x417b25
mov dword [esp + 0x60], eax
jmp 0x417b5a
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x3b0]
mov dword [ecx + edx*4], 0xbbd18838
inc dword [esp + 0x60]
cmp dword [esp + 0x60], esi
jl 0x417b44
mov ecx, dword [esp + 0x188]
cmp dword [esp + ecx*4 + 0x1e8], eax
je 0x417bb5
mov ecx, dword [esp + 0x188]
xor ebx, ebx
mov edx, dword [esp + ecx*4 + 0x1e8]
mov ecx, dword [esp + 0x3b0]
mov dword [ecx], edx
mov ecx, dword [esp + 0x1d8]
cmp ecx, edx
mov ecx, dword [esp + 0x35c]
mov edx, 0xbfb66feb
setge bl
mov dword [ecx + 4], edx
xor ecx, ecx
cmp ebx, edx
setle cl
imul ecx, ecx, 0xce3d
test ecx, ecx
jne 0x417bb7
mov esi, eax
mov ecx, dword [esp + 0x188]
xor edx, edx
mov ecx, dword [esp + ecx*4 + 0x1e8]
cmp esi, ecx
mov ecx, dword [esp + 0x1d8]
sete dl
mov ecx, dword [esp + ecx*4 + 0x1e8]
sub ecx, edx
jne 0x417be7
cmp dword [esp + 0x188], eax
je 0x417bee
mov ecx, dword [esp + 0x1d8]
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x3b0]
call fcn.00413d23
lea ecx, [esp + 0x35c]
call fcn.00413d23
dec dword [esp + 0x188]
push 1
pop esi
jns 0x417afe
xor eax, eax
dec dword [esp + 0x1d8]
jns 0x417ab6
push 2
pop ebx
mov dword [esp + 0x18], 0xfffffffd
mov dword [esp + 0x154], 0xf6f97812
mov dword [esp + 0x30], 0xea21
mov dword [esp + 0xc], 0x3f5cfeb4
mov dword [esp + 0x18], eax
jmp 0x417c64
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x194], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jl 0x417c55
xor ebx, ebx
mov dword [esp + 0x18], 0xfffffffe
mov ecx, dword [esp + 0x18]
cmp ecx, 0x91ba
mov ecx, dword [esp + 0x154]
setg bl
xor edx, edx
cmp ebx, ecx
mov ecx, 0xf2f34e40
setge dl
cmp ecx, edx
sbb ecx, ecx
inc ecx
imul ecx, ecx, 0x8ffca
test ecx, ecx
je 0x417cda
mov dword [esp + 0x28], 0xfffffffb
xor edx, edx
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x194]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 2
mov eax, dword [esp + 0x30]
setne dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [esp + 0xc], ecx
jmp 0x417e22
mov dword [esp + 0x4c], 0x3ede
mov dword [esp + 0x68], 0x4d3380d4
mov ecx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x68], eax
jne 0x417d10
mov ecx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
cmp dword [esp + 0x194], eax
je 0x417dde
mov dword [esp + 0x18], eax
jmp 0x417d3a
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x2ec], 0xfffffff6
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x417d27
cmp dword [esp + 0x2f8], eax
jne 0x417d80
mov ecx, dword [esp + 0x2f8]
cmp ecx, dword [esp + 0x194]
jle 0x417d62
mov ecx, eax
cmp dword [esp + 0x68], eax
je 0x417d64
mov ecx, esi
mov dword [esp + 0xc], ecx
cmp dword [esp + 0xc], eax
je 0x417d79
mov ecx, esi
cmp dword [esp + 0x154], eax
jne 0x417d7b
mov ecx, eax
dec ecx
mov ecx, eax
je 0x417d82
mov ecx, esi
cmp ecx, 9
sbb ecx, ecx
neg ecx
sub ecx, 0xc87c
je 0x417d98
mov ecx, dword [esp + 0x2f8]
mov ecx, dword [esp + 0x194]
mov ecx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x2ec]
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
neg esi
sbb esi, esi
xor edx, edx
neg esi
neg esi
cmp esi, ecx
mov ecx, dword [esp + 0x2ec]
setne dl
sub edx, ecx
jne 0x417dd5
cmp dword [esp + 0x194], eax
je 0x417dd8
xor eax, eax
inc eax
mov dword [esp + 0x68], eax
jmp 0x417e22
mov dword [esp + 0x19c], 0x266a
mov dword [esp + 0x68], eax
jmp 0x417dfc
cmp dword [esp + 0x19c], eax
jne 0x417e03
inc dword [esp + 0x68]
cmp dword [esp + 0x68], 0xa
jl 0x417def
mov dword [esp + 0x4c], eax
jmp 0x417e1b
mov eax, dword [esp + 0x19c]
mov dword [esp + 0x154], eax
inc dword [esp + 0x4c]
cmp dword [esp + 0x4c], 0x23
jg 0x417e09
push 4
pop esi
mov dword [esp + 0x24], 0xffffffff
lea ecx, [esp + 0x45c]
push esi
call fcn.00413c51
xor eax, eax
mov dword [esp + 0x108], eax
jmp 0x417e5d
mov edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x45c]
mov dword [ecx + edx*4], esi
inc dword [esp + 0x108]
cmp dword [esp + 0x108], esi
jl 0x417e45
mov byte [esp + 0xb4], al
cmp byte [esp + 0xb4], al
je 0x417e88
push eax
push 0x1a3e
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x417e9e
push 0x681
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
lea ecx, [esp + 0x45c]
call fcn.00413d23
push dword [esp + 0x144]
movdqa xmm0, xmmword [0xaa58c0]
lea ecx, [esp + 0x4bc]
push ecx
xor eax, eax
lea ecx, [esp + 0x4b0]
push ecx
push eax
lea ecx, [esp + 0x210]
mov dword [esp + 0x210], eax
movdqu xmmword [esp + 0x4b8], xmm0
mov dword [esp + 0x214], eax
mov dword [esp + 0x218], eax
call fcn.00415220
mov dword [esp + 0x34], 0x39d98273
xor esi, esi
inc esi
xor eax, eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], 6
mov dword [esp + 0x1c], 0xfffffffc
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x18], eax
jmp 0x417f3c
mov ecx, dword [esp + 0x18]
mov dword [esp + ecx*4 + 0x110], 0xe836ea0e
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x417f29
mov ecx, dword [esp + 0xc]
xor ebx, ebx
cmp ecx, esi
mov ecx, dword [esp + 0x10]
setg bl
xor edx, edx
cmp ebx, ecx
setle dl
cmp edx, dword [esp + 0xc]
je 0x417f66
mov edx, eax
cmp dword [esp + 0x10], eax
je 0x417f68
mov edx, esi
mov ecx, 0x4087a912
sub ecx, edx
push 0xfffffffffffffff7
pop edx
cmp edx, ecx
sbb ecx, ecx
neg ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0xc]
je 0x417f8e
cmp dword [esp + 0x10], eax
jne 0x417f8e
mov esi, eax
mov ecx, dword [esp + 0x10]
xor edx, edx
cmp esi, ecx
setne dl
sub edx, dword [esp + 0x1c]
neg edx
sbb edx, edx
xor ebx, ebx
inc edx
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
cmp edx, ecx
mov ecx, dword [esp + 0xc]
setge bl
xor edx, edx
cmp ebx, ecx
setle dl
xor esi, esi
inc esi
cmp edx, dword [esp + 0xc]
je 0x4180ac
mov dword [esp + 0xc], esi
push 2
pop ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x34], esi
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], eax
jl 0x418142
mov dword [esp + 0x28], 0xe785e8a7
mov dword [esp + 0x34], 0xf4a3ca5a
mov dword [esp + 0x10], eax
jmp 0x418037
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + ecx*4 + 0x110]
mov ecx, dword [esp + 0x1c]
mov dword [esp + ecx*4 + 0x110], edx
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x418033
push eax
push eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
xor eax, eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], eax
jle 0x418008
cmp dword [esp + 0xc], ebx
je 0x41805a
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + ecx*4 + 0x110]
mov ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + ecx*4 + 0x110]
cmp ecx, dword [esp + 0x110]
jle 0x41808a
mov ecx, eax
cmp dword [esp + 0x34], eax
je 0x41808c
mov ecx, esi
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x34]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x18], ecx
dec dword [esp + 0x1c]
jns 0x417ff2
jmp 0x418142
mov dword [esp + 0x30], esi
mov dword [esp + 0xc], 0x3ae864ea
mov dword [esp + 0xc], eax
jmp 0x4180d1
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x454], 0x2fb88b70
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x4180be
mov ecx, dword [esp + 0x30]
sub ecx, dword [esp + 0x30]
je 0x41811f
mov ecx, dword [esp + 0x10]
add ecx, ecx
dec ecx
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
cmp ecx, 0xffffffff
mov ecx, dword [esp + 0x30]
setge bl
xor edx, edx
cmp ebx, ecx
setl dl
mov dword [esp + 0xc], edx
cmp dword [esp + 0xc], 0x702
jl 0x418117
cmp dword [esp + 0xc], eax
jne 0x418117
mov ecx, eax
cmp ecx, dword [esp + 0x18]
mov ecx, esi
jle 0x418121
mov ecx, eax
mov dword [esp + 0x458], ecx
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], al
je 0x418142
push eax
push eax
push 0x17d5
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
xor eax, eax
mov dword [esp + 0x1c], 0x2f63069b
push 0xfffffffffffffffd
pop ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x34], 6
mov dword [esp + 0x34], 0x75761ac7
mov dword [esp + 0x20], 0x6e523240
mov dword [esp + 0xc], eax
jmp 0x418186
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x148], 0xfffffffc
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x418173
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
neg esi
mov ecx, dword [esp + 0x10]
sbb esi, esi
xor ebx, ebx
neg esi
cmp edx, ecx
setl bl
mov dword [esp + 0x34], ebx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x148], ecx
mov ecx, dword [esp + 0x148]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp esi, ecx
mov ecx, dword [esp + 0x10]
sete dl
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [esp + 0x10]
setne bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [esp + 0x10]
setl dl
imul esi, edx, 0xffffada9
sub esi, 0x81de
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
setge dl
xor ebx, ebx
mov dword [esp + 0x34], edx
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x148]
mov ecx, dword [esp + 0x10]
cmp edx, ecx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
setle bl
mov dword [esp + 0x20], ebx
xor ebx, ebx
cmp edx, ecx
mov ecx, 0xd77dfcc8
setle bl
sub ebx, dword [esp + 0x20]
add ebx, dword [esp + 0x10]
imul ebx, dword [esp + 0x10]
cmp ecx, ebx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x20], ecx
mov byte [esp + 0x98], al
cmp byte [esp + 0x98], 0
je 0x418268
push eax
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
push 0
push 0
call dword [sym.imp.USER32.dll_DialogBoxParamA]
xor eax, eax
push 3
mov dword [esp + 0x2c], 0xfffffffd
mov dword [esp + 0x10], eax
pop ebx
jmp 0x41828c
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x158], 0x82a1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jl 0x418279
mov dword [esp + 0x80], 0x24039b64
mov dword [esp + 0x284], 0x42b9193c
mov byte [esp + 0x9d], al
cmp byte [esp + 0x9d], 0
je 0x4182c2
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
xor eax, eax
cmp dword [esp + 0x80], eax
je 0x4182f2
mov dword [esp + 0x2c], 1
mov dword [esp + 0x2c], 0xfffffff8
mov dword [esp + 0x174], 0xf55e00fe
inc dword [esp + 0x174]
jmp 0x4183da
push 2
mov dword [esp + 0x23c], eax
mov dword [esp + 0x10], eax
pop esi
jmp 0x418315
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x4c4], 0xfffffff7
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x418302
mov dword [esp + 0x80], ebx
cmp dword [esp + 0x80], esi
jne 0x4183da
mov dword [esp + 0x240], 0xfffffffe
lea ecx, [esp + 0x2cc]
push ebx
call fcn.00413c51
xor eax, eax
mov dword [esp + 0x118], eax
jmp 0x41836a
mov edx, dword [esp + 0x118]
mov ecx, dword [esp + 0x2cc]
mov dword [ecx + edx*4], eax
inc dword [esp + 0x118]
cmp dword [esp + 0x118], ebx
jl 0x418352
cmp dword [esp + 0x80], eax
jne 0x4183cc
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x23c]
push eax
lea eax, [esp + 0x28c]
push eax
lea edx, [esp + 0x2d8]
lea ecx, [esp + 0x24c]
call fcn.00415f6b
add esp, 0xc
lea ecx, [esp + 0x2cc]
call fcn.00413d23
dec dword [esp + 0x80]
cmp dword [esp + 0x80], esi
je 0x41832f
jmp 0x4183d8
lea ecx, [esp + 0x2cc]
call fcn.00413d23
xor eax, eax
cmp dword [esp + 0x24], eax
je 0x418406
mov edx, dword [esp + 0x15c]
mov ecx, dword [esp + 0x200]
mov dword [ecx + 0xc], edx
mov ecx, dword [esp + 0x24]
imul ecx, dword [esp + 0x15c]
cmp edx, ecx
jge 0x418406
xor esi, esi
inc esi
jmp 0x418408
mov esi, eax
mov ecx, dword [esp + 0x15c]
xor ebx, ebx
mov edx, dword [esp + 0x158]
mov ecx, dword [esp + 0x15c]
cmp edx, ecx
mov ecx, dword [esp + 0x15c]
setl bl
xor edx, edx
cmp ebx, ecx
setl dl
xor ecx, ecx
cmp esi, edx
setge cl
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x15c]
add edx, ecx
xor ecx, ecx
cmp edx, 0x4cbe
setle cl
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
sub edx, ecx
neg edx
sbb edx, edx
inc edx
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0x15c]
jne 0x4184f9
call fcn.004164da
mov dword [esp + 0x1a0], 0x1c9b6cd0
mov dword [esp + 0x18c], 0x1aa2910a
call fcn.004165a4
xor ebx, ebx
inc ebx
mov dword [esp + 0x1a8], ebx
call fcn.00416716
mov dword [esp + 0x2ac], 0xffffffff
call fcn.00416c06
mov eax, dword [esp + 0x1a0]
xor edx, edx
mov dword [esp + 0x18c], eax
mov ecx, dword [esp + 0x18c]
mov eax, dword [esp + 0x1a0]
cmp ecx, eax
setge dl
mov dword [esp + 0x1a8], edx
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x2ac], eax
jmp 0x418af9
mov dword [esp + 0x2c], 0x52276c1f
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x4186ee
mov dword [esp + 0x24], 3
mov dword [esp + 0x10], 0xba86ba47
mov dword [esp + 0x20], 0xade0980d
mov dword [esp + 0x2fc], 0xffffffff
mov dword [esp + 0x300], 0xffffffff
mov dword [esp + 0x304], 0xffffffff
mov dword [esp + 0x308], 0xffffffff
mov dword [esp + 0x38], 9
mov dword [esp + 0x24], 0xffffffee
jmp 0x4186db
mov dword [esp + 0x30], 0x22e6
xor edx, edx
mov dword [esp + 0x1c], 0x9900
mov dword [esp + 0x34], 0xffffffff
mov ecx, dword [esp + 0x30]
cmp ecx, 0xffff
setne dl
add edx, dword [esp + 0x1c]
imul ecx, edx, 0xfffffff8
test ecx, ecx
je 0x4185c4
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x4186d7
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_RectVisible]
jmp 0x4186d5
mov dword [esp + 0x18], 0xc9bf5e4d
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0xc], eax
jmp 0x4185ed
mov ecx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x440], 0x6ab2aee5
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x4185da
cmp dword [esp + 0x10], eax
jne 0x4186e6
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x300], ecx
test ecx, ecx
je 0x418664
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x300], 0x551b32e2
mov dword [esp + 0x34], eax
cmp dword [esp + 0x34], eax
je 0x41862a
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
xor ebx, ebx
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
sub edx, ecx
add edx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
cmp edx, ecx
setle bl
sub ebx, 0x9c2b
je 0x418664
xor esi, esi
inc esi
jmp 0x418666
mov esi, eax
mov edx, dword [esp + 0x10]
mov dword [esp + 0x440], edx
mov ecx, dword [esp + 0x20]
sub edx, ecx
cmp edx, esi
jl 0x41868e
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
je 0x4186d7
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
jmp 0x4186d5
mov byte [esp + 0xa7], al
cmp byte [esp + 0xa7], 0
je 0x4186b0
push eax
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetPropA]
xor eax, eax
mov byte [esp + 0xa9], al
cmp byte [esp + 0xa9], 0
je 0x4186d7
push 0x71
push 0xf76
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
xor eax, eax
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 0xfffffff2
jge 0x418569
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
xor ebx, ebx
mov dword [esp + 0x90], 8
inc ebx
lea ecx, [esp + 0x90]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x38], 0x108fa7ad
call fcn.00415cca
push 0xffffffffffffffed
mov dword [esp + 0x94], 0xfffffffb
pop esi
jmp 0x418854
mov dword [esp + 0x38], 0
mov dword [esp + 0xc], 0
jmp 0x41874c
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x31c], 0
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x418739
mov byte [esp + 0x17], 0
cmp byte [esp + 0x17], 0
je 0x418767
push 0
call dword [sym.imp.USER32.dll_CharUpperW]
mov dword [esp + 0x324], 0
jmp 0x41883f
mov dword [esp + 0x114], 0xfffffff7
mov dword [esp + 0x38], 0x67684abf
mov dword [esp + 0x38], 0x18158fb5
mov dword [esp + 0xc], 0
jmp 0x4187af
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x4cc], 0x49f2b782
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x41879c
mov dword [esp + 0x114], esi
jmp 0x418827
push 4
lea ecx, [esp + 0x2b8]
call fcn.00413c51
mov dword [esp + 0xe0], 0
jmp 0x4187f6
mov ecx, dword [esp + 0xe0]
mov eax, dword [esp + 0x2b4]
mov dword [eax + ecx*4], 0x97ab83de
inc dword [esp + 0xe0]
cmp dword [esp + 0xe0], 4
jl 0x4187da
cmp dword [esp + 0x90], 0
lea ecx, [esp + 0x2b4]
jne 0x418833
mov eax, dword [esp + 0x2b4]
inc dword [eax + 8]
call fcn.00413d23
dec dword [esp + 0x114]
cmp dword [esp + 0x114], 0xffffffea
jle 0x4187bf
jmp 0x418838
call fcn.00413d23
dec dword [esp + 0x324]
cmp dword [esp + 0x324], 0xfffffffc
jg 0x418777
dec dword [esp + 0x90]
cmp dword [esp + 0x90], esi
je 0x418727
push 3
pop esi
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x1c], 0
jl 0x418af9
mov dword [esp + 0x34], 0x1a1f
mov dword [esp + 0x24], 0
jmp 0x418ae5
call fcn.00415d40
mov dword [esp + 0x20], 0xf1f3e168
xor eax, eax
mov dword [esp + 0x128], 0x469ad59e
mov dword [esp + 0x38], 0x20985a95
mov dword [esp + 0x38], 0xb8ee41b6
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x38], 0x1ba028e
mov dword [esp + 0x38], 0x515fdc8d
mov dword [esp + 0x38], 0xfffffffd
mov dword [esp + 0x38], 0x4952f341
mov dword [esp + 0x1c8], 0x2a5bc422
mov dword [esp + 0x10], eax
jmp 0x4188fa
mov ecx, dword [esp + 0x10]
mov dword [esp + ecx*4 + 0x4d8], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x4188eb
mov dword [esp + 0x10], eax
jmp 0x418915
cmp dword [esp + 0x10], ebx
jl 0x418906
cmp dword [esp + 0x24], esi
jle 0x418888
dec dword [esp + 0x1c]
jns 0x418873
lea ecx, [esp + 0x200]
call fcn.00413d23
xor eax, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x88], 0xb5cabfc3
mov dword [esp + 0x50], eax
jmp 0x418b4a
mov byte [esp + 0xb6], al
cmp byte [esp + 0xb6], 0
je 0x418b46
push eax
push 0x1015
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call edi
xor eax, eax
dec dword [esp + 0x50]
cmp dword [esp + 0x50], 0xffffffea
jg 0x418b1c
push 3
pop esi
push 2
mov dword [esp + 0x54], eax
pop edi
cmp dword [esp + 0x50], esi
jl 0x418ca1
mov dword [esp + 0xc], 0xffffffff
lea ecx, [esp + 0x3a4]
push edi
call fcn.00413c51
xor eax, eax
mov dword [esp + 0xc8], eax
jmp 0x418b9e
cmp dword [esp + 0xc8], edi
jl 0x418b85
push esi
lea ecx, [esp + 0x1bc]
call fcn.00413c51
call fcn.004167b7
push dword [esp + 0x1a4]
movdqa xmm0, xmmword [0xaa5920]
lea ecx, [esp + 0x4ac]
push ecx
xor eax, eax
lea ecx, [esp + 0x4a0]
push ecx
push eax
lea ecx, [esp + 0x1ec]
mov dword [esp + 0x1ec], eax
movdqu xmmword [esp + 0x4a8], xmm0
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1f4], eax
call fcn.00415220
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], 0xbeba
mov dword [esp + 0xc], eax
jmp 0x418d26
cmp dword [esp + 0xc], esi
jl 0x418d13