Function at 0x424400
Capabilities:
Get file attributes

Disassembly:
sub esp, 0x40
push ebx
push ebp
push esi
mov esi, dword [sym.imp.USER32.dll_CreatePopupMenu]
push edi
mov edi, ecx
call esi
mov ebp, eax
mov dword [esp + 0x3c], ebp
call esi
mov ebx, eax
push 0x43
mov dword [esp + 0x50], ebx
call fcn.00434070
add esp, 4
push eax
push ebx
push 0x410
push ebp
mov ebp, dword [sym.imp.USER32.dll_AppendMenuW]
call ebp
call esi
mov esi, eax
push 0x46
mov dword [esp + 0x3c], esi
call fcn.00434070
add esp, 4
push eax
push esi
push 0x410
push ebx
call ebp
lea eax, [esp + 0x34]
push 1
push eax
call fcn.004330d0
mov ecx, dword [edi + 0x1648]
mov esi, eax
add edi, 0x1648
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x20], edi
cmp ecx, eax
je 0x4244ba
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x424490
mov edx, dword [0x46b220]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x424497
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x4244a5
mov ecx, dword [eax - 8]
push eax
push ecx
mov ecx, edi
call fcn.004027f0
jmp 0x4244ba
mov ecx, edi
call fcn.00402690
mov esi, dword [esi]
mov dword [edi], esi
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0x34]
mov ecx, dword [0x46b220]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x4244e9
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4244e9
mov eax, dword [esp + 0x34]
add eax, 0xfffffff4
push eax
call fcn.00459de2
add esp, 4
mov ebx, dword [edi]
mov eax, dword [ebx - 0xc]
test eax, eax
jl 0x424502
mov dword [esp + 0x10], ebx
add ebx, 0xfffffff4
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x424526
mov ecx, dword [0x46b21c]
test ebx, ebx
mov dword [esp + 0x10], ecx
jne 0x424514
xor eax, eax
jmp 0x42451b
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push ebx
push eax
lea ecx, [esp + 0x18]
call fcn.004027f0
mov edx, dword [0x46b21c]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov eax, 0x4837e0
mov dword [esp + 0x1c], edx
test eax, eax
je 0x424575
push eax
call esi
mov ebx, eax
test ebx, ebx
je 0x424575
push ebx
lea ecx, [esp + 0x20]
call fcn.00401ce0
test eax, eax
je 0x424575
mov ecx, dword [esp + 0x1c]
inc ebx
push ebx
push 0x4837e0
push ecx
call fcn.00402650
add esp, 0xc
lea ecx, [esp + 0x1c]
push 0xffffffffffffffff
call fcn.00401f50
mov edx, dword [0x46b21c]
mov eax, 0x46b3d8
test eax, eax
mov dword [esp + 0x18], edx
je 0x4245be
push eax
call esi
mov ebx, eax
test ebx, ebx
je 0x4245be
push ebx
lea ecx, [esp + 0x1c]
call fcn.00401ce0
test eax, eax
je 0x4245be
mov ecx, dword [esp + 0x18]
inc ebx
push ebx
push 0x46b3d8
push ecx
call fcn.00402650
add esp, 0xc
lea ecx, [esp + 0x18]
push 0xffffffffffffffff
call fcn.00401f50
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
test eax, eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x28], eax
je 0x424788
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
test ebx, ebx
je 0x424788
test esi, esi
jne 0x4245f1
mov dword [esp + 0x24], esi
jmp 0x4245fc
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x10]
xor edi, edi
mov edx, dword [esi - 8]
lea eax, [esi + edx*2]
cmp esi, eax
mov dword [esp + 0x30], eax
jae 0x424784
mov eax, dword [esp + 0x28]
push eax
push esi
call fcn.00459e1d
add esp, 8
test eax, eax
je 0x42463c
mov ecx, dword [esp + 0x28]
lea esi, [eax + ebx*2]
push ecx
push esi
inc edi
call fcn.00459e1d
add esp, 8
test eax, eax
jne 0x424626
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [esi + eax*2 + 2]
mov eax, dword [esp + 0x30]
cmp esi, eax
jb 0x424614
test edi, edi
jle 0x424784
lea ecx, [esp + 0x10]
call fcn.00401d40
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
sub eax, ebx
imul eax, edi
mov ecx, dword [esi - 8]
mov dword [esp + 0x2c], ecx
add eax, ecx
mov ecx, dword [esi - 4]
mov dword [esp + 0x48], eax
cmp ecx, eax
jl 0x424687
cmp dword [esi - 0xc], 1
jle 0x4246c5
lea edx, [esi - 0xc]
push eax
lea ecx, [esp + 0x14]
mov dword [esp + 0x44], edx
call fcn.00401ce0
test eax, eax
je 0x424784
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x10]
push eax
mov ecx, dword [eax + 4]
shl ecx, 1
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004028a0
mov esi, dword [esp + 0x10]
mov eax, dword [esi - 8]
lea eax, [esi + eax*2]
cmp esi, eax
mov dword [esp + 0x30], eax
jae 0x42477d
mov ecx, dword [esp + 0x28]
push ecx
push esi
call fcn.00459e1d
mov edi, eax
add esp, 8
test edi, edi
je 0x424762
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov edx, edi
sub edx, eax
mov eax, dword [esp + 0x2c]
sar edx, 1
sub eax, edx
lea esi, [ecx + ecx]
sub eax, ebx
lea edx, [edi + ebx*2]
add eax, eax
lea ecx, [esi + edi]
push eax
push edx
push ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ecx
call fcn.0045a220
mov ecx, esi
mov esi, dword [esp + 0x40]
mov eax, ecx
mov edx, dword [esp + 0x30]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x38]
sub edx, ebx
and ecx, 3
add eax, edx
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x34]
push eax
push esi
mov word [ecx + esi], 0
call fcn.00459e1d
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x4246eb
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [esi + eax*2 + 2]
mov eax, dword [esp + 0x30]
cmp esi, eax
jb 0x4246d7
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
mov dword [esi - 8], ecx
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov ecx, dword [0x46b220]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x4247b7
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4247b7
mov eax, dword [esp + 0x18]
add eax, 0xfffffff4
push eax
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4247e6
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4247e6
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x34]
push eax
call fcn.0041c660
mov eax, dword [eax]
push ebx
push eax
call fcn.0045a595
mov edx, dword [0x46b220]
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x34]
setne bl
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x424834
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x424834
mov edx, dword [esp + 0x34]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
test bl, bl
je 0x42487f
mov eax, 0x4837e0
test eax, eax
je 0x42484e
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
call esi
mov ebx, eax
jmp 0x424856
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
xor ebx, ebx
push ebx
mov ecx, edi
call fcn.00401de0
test eax, eax
je 0x424885
mov ecx, dword [edi]
inc ebx
push ebx
push 0x4837e0
push ecx
call fcn.00402650
add esp, 0xc
mov ecx, edi
push 0xffffffffffffffff
call fcn.00401f50
jmp 0x424885
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov eax, dword [0x46b21c]
mov edx, dword [edi]
mov dword [esp + 0x14], eax
mov ecx, dword [edx - 8]
test ecx, ecx
je 0x424b1f
mov dword [esp + 0x18], eax
mov eax, 0x46b4c8
test eax, eax
je 0x4248de
push eax
call esi
mov edi, eax
test edi, edi
je 0x4248de
push edi
lea ecx, [esp + 0x1c]
call fcn.00401ce0
test eax, eax
je 0x4248de
mov ecx, dword [esp + 0x18]
inc edi
push edi
push 0x46b4c8
push ecx
call fcn.00402650
add esp, 0xc
lea ecx, [esp + 0x18]
push 0xffffffffffffffff
call fcn.00401f50
mov edx, dword [0x46b21c]
mov eax, 0x46b4c4
test eax, eax
mov dword [esp + 0x1c], edx
je 0x424927
push eax
call esi
mov edi, eax
test edi, edi
je 0x424927
push edi
lea ecx, [esp + 0x20]
call fcn.00401ce0
test eax, eax
je 0x424927
mov ecx, dword [esp + 0x1c]
inc edi
push edi
push 0x46b4c4
push ecx
call fcn.00402650
add esp, 0xc
lea ecx, [esp + 0x1c]
push 0xffffffffffffffff
call fcn.00401f50
lea edx, [esp + 0x40]
push 0xca
push edx
call fcn.00420940
mov ecx, dword [0x46b21c]
mov eax, dword [eax]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x24]
add esp, 8
mov edx, dword [ecx - 8]
push ecx
push edx
push eax
mov eax, dword [eax - 8]
push eax
lea ecx, [esp + 0x40]
call fcn.00401eb0
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x38]
call fcn.00429290
lea ecx, [esp + 0x30]
call fcn.00401e80
mov edx, dword [0x46b21c]
mov eax, dword [0x483978]
mov dword [esp + 0x2c], edx
push eax
mov eax, dword [eax - 8]
push eax
mov eax, dword [esp + 0x3c]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x3c]
call fcn.00401eb0
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x20]
push edx
call fcn.00429290
lea ecx, [esp + 0x2c]
call fcn.00401e80
mov eax, dword [0x46b21c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
push eax
mov ecx, dword [eax - 8]
mov eax, dword [esp + 0x24]
push ecx
push eax
mov edx, dword [eax - 8]
lea ecx, [esp + 0x34]
push edx
call fcn.00401eb0
lea eax, [esp + 0x28]
lea ecx, [esp + 0x24]
push eax
call fcn.00429290
lea ecx, [esp + 0x28]
call fcn.00401e80
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
push ecx
push 0x81b3
push 0
push edx
call ebp
mov eax, dword [esp + 0x24]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x424a31
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x424a37
mov edx, dword [esp + 0x24]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
jmp 0x424a37
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov eax, dword [esp + 0x20]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x424a62
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x424a62
mov edx, dword [esp + 0x20]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x34]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x424a8d
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x424a8d
mov edx, dword [esp + 0x34]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x40]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x424ab8
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x424ab8
mov edx, dword [esp + 0x40]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x424ae3
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x424ae3
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x18]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42518a
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x42518a
mov edx, dword [esp + 0x18]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
jmp 0x42518a
lea eax, [esp + 0x40]
push 0
push eax
call fcn.004330d0
mov ecx, dword [edi]
mov ebx, eax
add esp, 8
mov eax, dword [ebx]
cmp ecx, eax
je 0x424b76
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x424b4c
mov edx, dword [0x46b220]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x424b53
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x424b61
mov ecx, dword [eax - 8]
push eax
push ecx
mov ecx, edi
call fcn.004027f0
jmp 0x424b76
mov ecx, edi
call fcn.00402690
mov eax, dword [ebx]
mov dword [edi], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0x40]
mov ecx, dword [0x46b220]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x424ba5
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x424ba5
mov eax, dword [esp + 0x40]
add eax, 0xfffffff4
push eax
call fcn.00459de2
add esp, 4
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
je 0x424bf3
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x424bc3
mov edx, dword [0x46b220]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x424bca
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x424bda
mov ecx, dword [eax - 8]
push eax
push ecx
lea ecx, [esp + 0x18]
call fcn.004027f0
jmp 0x424bf3
lea ecx, [esp + 0x10]
call fcn.00402690
mov edi, dword [edi]
mov dword [esp + 0x10], edi
add edi, 0xfffffff4
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov edx, dword [0x46b21c]
mov eax, 0x4837e0
test eax, eax
mov dword [esp + 0x18], edx
je 0x424c3c
push eax
call esi
mov edi, eax
test edi, edi
je 0x424c3c
push edi
lea ecx, [esp + 0x1c]
call fcn.00401ce0
test eax, eax
je 0x424c3c
mov ecx, dword [esp + 0x18]
inc edi
push edi
push 0x4837e0
push ecx
call fcn.00402650
add esp, 0xc
lea ecx, [esp + 0x18]
push 0xffffffffffffffff
call fcn.00401f50
mov edx, dword [0x46b21c]
mov eax, 0x46b3d8
test eax, eax
mov dword [esp + 0x1c], edx
je 0x424c89
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
test esi, esi
je 0x424c89
push esi
lea ecx, [esp + 0x20]
call fcn.00401ce0
test eax, eax
je 0x424c89
mov ecx, dword [esp + 0x1c]
inc esi
push esi
push 0x46b3d8
push ecx
call fcn.00402650
add esp, 0xc
lea ecx, [esp + 0x1c]
push 0xffffffffffffffff
call fcn.00401f50
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x24], eax
je 0x424e51
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
call esi
mov ebx, eax
test ebx, ebx
je 0x424e51
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x424cc2
mov dword [esp + 0x28], eax
jmp 0x424cc9
push eax
call esi
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0x10]
xor edi, edi
mov eax, dword [esi - 8]
lea eax, [esi + eax*2]
cmp esi, eax
mov dword [esp + 0x30], eax
jae 0x424e51
mov ecx, dword [esp + 0x24]
push ecx
push esi
call fcn.00459e1d
add esp, 8
test eax, eax
je 0x424d09
mov edx, dword [esp + 0x24]
lea esi, [eax + ebx*2]
push edx
push esi
inc edi
call fcn.00459e1d
add esp, 8
test eax, eax
jne 0x424cf3
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [esi + eax*2 + 2]
mov eax, dword [esp + 0x30]
cmp esi, eax
jb 0x424ce1
test edi, edi
jle 0x424e51
lea ecx, [esp + 0x10]
call fcn.00401d40
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x10]
sub eax, ebx
imul eax, edi
mov ecx, dword [esi - 8]
mov dword [esp + 0x34], ecx
add eax, ecx
mov ecx, dword [esi - 4]
mov dword [esp + 0x2c], eax
cmp ecx, eax
jl 0x424d54
cmp dword [esi - 0xc], 1
jle 0x424d92
lea ecx, [esi - 0xc]
push eax
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x14]
call fcn.00401ce0
test eax, eax
je 0x424e51
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x10]
push eax
mov ecx, dword [eax + 4]
shl ecx, 1
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004028a0
mov esi, dword [esp + 0x10]
mov eax, dword [esi - 8]
lea eax, [esi + eax*2]
cmp esi, eax
mov dword [esp + 0x30], eax
jae 0x424e4a
mov ecx, dword [esp + 0x24]
push ecx
push esi
call fcn.00459e1d
mov edi, eax
add esp, 8
test edi, edi
je 0x424e2f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov edx, edi
sub edx, eax
mov eax, dword [esp + 0x34]
sar edx, 1
sub eax, edx
lea esi, [ecx + ecx]
sub eax, ebx
lea edx, [edi + ebx*2]
add eax, eax
lea ecx, [esi + edi]
push eax
push edx
push ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
call fcn.0045a220
mov ecx, esi
mov esi, dword [esp + 0x4c]
mov eax, ecx
mov edx, dword [esp + 0x34]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x40]
sub edx, ebx
and ecx, 3
add eax, edx
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
push eax
push esi
mov word [ecx + esi], 0
call fcn.00459e1d
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x424db8
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [esi + eax*2 + 2]
mov eax, dword [esp + 0x30]
cmp esi, eax
jb 0x424da4
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov dword [esi - 8], ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x46b220]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x424e84
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x424e8a
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff4
push eax
call fcn.00459de2
add esp, 4
jmp 0x424e8a
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov eax, dword [esp + 0x18]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x424eb5
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x424eb5
mov edx, dword [esp + 0x18]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov esi, dword [esp + 0x10]
lea eax, [esp + 0x40]
push eax
call fcn.0041c660
mov eax, dword [eax]
push esi
push eax
call fcn.0045a595
mov edx, dword [0x46b220]
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x40]
setne bl
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x424eff
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x424eff
mov edx, dword [esp + 0x40]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
test bl, bl
je 0x424f4c
mov eax, 0x4837e0
test eax, eax
je 0x424f17
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
jmp 0x424f19
xor edi, edi
mov esi, dword [esp + 0x20]
push edi
mov ecx, esi
call fcn.00401de0
test eax, eax
je 0x424f44
mov ecx, dword [esi]
inc edi
push edi
push 0x4837e0
push ecx
call fcn.00402650
add esp, 0xc
mov ecx, esi
push 0xffffffffffffffff
call fcn.00401f50
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
jmp 0x424f50
mov esi, dword [esp + 0x20]
mov edx, dword [esi]
mov eax, dword [edx - 8]
test eax, eax
je 0x42518a
mov eax, dword [0x46b21c]
mov ecx, 0x46b4c8
test ecx, ecx
mov dword [esp + 0x1c], eax
je 0x424fa9
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
test esi, esi
je 0x424fa9
push esi
lea ecx, [esp + 0x20]
call fcn.00401ce0
test eax, eax
je 0x424fa9
mov edx, dword [esp + 0x1c]
inc esi
push esi
push 0x46b4c8
push edx
call fcn.00402650
add esp, 0xc
lea ecx, [esp + 0x1c]
push 0xffffffffffffffff
call fcn.00401f50
mov eax, dword [0x46b21c]
mov ecx, 0x46b4c4
test ecx, ecx
mov dword [esp + 0x20], eax
je 0x424ff5
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
test esi, esi
je 0x424ff5
push esi
lea ecx, [esp + 0x24]
call fcn.00401ce0
test eax, eax
je 0x424ff5
mov edx, dword [esp + 0x20]
inc esi
push esi
push 0x46b4c4
push edx
call fcn.00402650
add esp, 0xc
lea ecx, [esp + 0x20]
push 0xffffffffffffffff
call fcn.00401f50
lea eax, [esp + 0x40]
push 0xca
push eax
call fcn.00420940
mov ecx, dword [0x46b21c]
mov eax, dword [eax]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x28]
add esp, 8
mov edx, dword [ecx - 8]
push ecx
push edx
push eax
mov eax, dword [eax - 8]
push eax
lea ecx, [esp + 0x44]
call fcn.00401eb0
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00429290
lea ecx, [esp + 0x34]
call fcn.00401e80
mov edx, dword [0x46b21c]
mov eax, dword [0x483978]
mov dword [esp + 0x30], edx
push eax
mov eax, dword [eax - 8]
push eax
mov eax, dword [esp + 0x20]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x40]
call fcn.00401eb0
lea edx, [esp + 0x30]
lea ecx, [esp + 0x24]
push edx
call fcn.00429290
lea ecx, [esp + 0x30]
call fcn.00401e80
mov eax, dword [0x46b21c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
push eax
mov ecx, dword [eax - 8]
mov eax, dword [esp + 0x28]
push ecx
push eax
mov edx, dword [eax - 8]
lea ecx, [esp + 0x38]
push edx
call fcn.00401eb0
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x28]
push eax
call fcn.00429290
lea ecx, [esp + 0x2c]
call fcn.00401e80
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
push ecx
push 0x81b4
push 0
push edx
call ebp
mov eax, dword [esp + 0x28]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4250f7
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x4250f7
mov edx, dword [esp + 0x28]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x24]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x425122
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x425122
mov edx, dword [esp + 0x24]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x18]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42514d
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42514d
mov edx, dword [esp + 0x18]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x40]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x425178
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x425178
mov edx, dword [esp + 0x40]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
lea ecx, [esp + 0x20]
call fcn.00401e80
lea ecx, [esp + 0x1c]
call fcn.00401e80
mov esi, dword [esp + 0x38]
push 0x46d8e4
push 0x81b5
push 0
push esi
call ebp
push str..ini_..
lea ecx, [esp + 0x44]
call fcn.00402a90
lea eax, [esp + 0x40]
lea ecx, [esp + 0x44]
push eax
push 0x483978
call fcn.00429290
lea ecx, [esp + 0x4c]
push eax
push ecx
call fcn.00402d10
mov edx, dword [eax]
push edx
push 0x81b8
push 0
push esi
call ebp
lea ecx, [esp + 0x48]
call fcn.00401e80
lea ecx, [esp + 0x44]
call fcn.00401e80
lea ecx, [esp + 0x40]
call fcn.00401e80
push 0x46b4b4
lea ecx, [esp + 0x44]
call fcn.00402a90
lea eax, [esp + 0x40]
lea ecx, [esp + 0x44]
push eax
push 0x483978
call fcn.00429290
lea ecx, [esp + 0x4c]
push eax
push ecx
call fcn.00402d10
mov edx, dword [eax]
push edx
push 0x81b9
push 0
push esi
call ebp
lea ecx, [esp + 0x48]
call fcn.00401e80
lea ecx, [esp + 0x44]
call fcn.00401e80
lea ecx, [esp + 0x40]
call fcn.00401e80
mov esi, dword [esp + 0x4c]
push 0
push 0
push 0xc00
push esi
call ebp
push 0xf2
call fcn.00434070
add esp, 4
lea ecx, [esp + 0x14]
push eax
call fcn.00402e60
mov eax, dword [0x483978]
lea ecx, [esp + 0x14]
push eax
push str.AP
call fcn.00403c70
mov ecx, dword [esp + 0x14]
push ecx
push 0x8031
push 0x400
push esi
call ebp
push 0xf3
call fcn.00434070
add esp, 4
push eax
lea ecx, [esp + 0x18]
call fcn.00402e60
mov edx, dword [0x483978]
lea ecx, [esp + 0x14]
push edx
push str.AP
call fcn.00403c70
mov eax, dword [esp + 0x14]
push eax
push 0x8032
push 0x400
push esi
call ebp
push 0
push 0
push 0xc00
push esi
call ebp
push 0x1a
call fcn.00434070
add esp, 4
lea ecx, [esp + 0x14]
push eax
call fcn.00402e60
mov ecx, dword [esp + 0x14]
push ecx
push 0xaf83
push 0x400
push esi
call ebp
push 0
push 0x499602d2
push 0xc00
push esi
call ebp
push 0xcf
call fcn.00434070
add esp, 4
lea ecx, [esp + 0x4c]
push eax
call fcn.004028d0
mov edx, dword [eax]
push edx
push 0x44c
push 0x400
push esi
call ebp
lea ecx, [esp + 0x4c]
call fcn.00401e80
push 0
push 0
push 0xc00
push esi
call ebp
push 0xcb
call fcn.00434070
add esp, 4
push eax
push 0xafc0
push 0
push esi
call ebp
push 0
push 0
push 0xc00
push esi
call ebp
push 0x18
call fcn.00434070
add esp, 4
push eax
push 0x8094
push 0
push esi
call ebp
mov edi, dword [sym.imp.USER32.dll_CreatePopupMenu]
call edi
push 0x19
mov esi, eax
call fcn.00434070
add esp, 4
push eax
mov eax, dword [esp + 0x40]
push esi
push 0x410
push eax
call ebp
push 0x19
call fcn.00434070
add esp, 4
push eax
push 0x8093
push 0x400
push esi
call ebp
push 0
push 0
push 0xc00
push esi
call ebp
push 0xf4
call fcn.00434070
add esp, 4
lea ecx, [esp + 0x14]
push eax
call fcn.00402e60
push str._t____
lea ecx, [esp + 0x44]
call fcn.00402a90
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x18]
call fcn.004035b0
lea ecx, [esp + 0x40]
call fcn.00401e80
mov edx, dword [0x483978]
lea ecx, [esp + 0x14]
push edx
push str.AP
call fcn.00403c70
mov eax, dword [esp + 0x14]
push eax
push 0x81b6
push 0x400
push esi
call ebp
push 0xf6
call fcn.00434070
add esp, 4
push eax
push 0x8035
push 0x400
push esi
call ebp
push 0xf5
call fcn.00434070
add esp, 4
push eax
push 0x8091
push 0x400
push esi
call ebp
push 0
push 0
push 0xc00
push esi
call ebp
push 0x4e
call fcn.00434070
add esp, 4
push eax
push 0x8092
push 0x400
push esi
call ebp
call edi
push str.BaseMain.h
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
xor ebx, ebx
mov dword [esp + 0x4c], eax
xor esi, esi
mov eax, dword [0x4b20ac]
test eax, eax
jle 0x425564
mov ecx, dword [esi*4 + 0x4b13a0]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 5
jle 0x425538
mov eax, dword [esp + 0x4c]
mov edx, dword [0x46b21c]
mov ecx, dword [esi*4 + 0x4b13a0]
inc ebx
cmp eax, 0xffffffff
mov eax, dword [esi*4 + 0x4b0f8c]
push eax
mov dword [esp + 0x2c], edx
push ecx
jne 0x4254f8
lea edx, [esp + 0x30]
push str._s__t__d__
push edx
call fcn.004036a0
add esp, 0x10
jmp 0x42550b
push esi
lea edx, [esp + 0x34]
push str._d__s____d___
push edx
call fcn.004036a0
add esp, 0x14
mov eax, dword [esp + 0x28]
lea ecx, [esi + 0x80e8]
push eax
push ecx
mov ecx, dword [0x4b20a8]
xor edx, edx
cmp ecx, esi
setne dl
dec edx
and edx, 3
or dh, 4
push edx
push edi
call ebp
lea ecx, [esp + 0x28]
call fcn.00401e80
mov eax, dword [0x4b20ac]
inc esi
cmp esi, eax
jl 0x4254ad
cmp esi, 0xc
jle 0x425564
sar ebx, 1
push 0x4837e8
push 0
add ebx, 2
push 0x4c60
push ebx
push edi
call dword [sym.imp.USER32.dll_InsertMenuW]
push 0
push 0
push 0xc00
push edi
call ebp
push str.Translate
push 0x814c
push 0x400
push edi
call ebp
push 0x46b430
push 0x814d
push 0x400
push edi
call ebp
lea eax, [esp + 0x4c]
push 0x4d
push eax
call fcn.00420940
mov eax, dword [eax]
mov ecx, dword [esp + 0x44]
add esp, 8
push eax
push edi
push 0x410
push ecx
call ebp
lea ecx, [esp + 0x4c]
call fcn.00401e80
mov eax, dword [0x4ad1c0]
test eax, eax
jne 0x42583f
push 0
push 0x1c
mov ecx, 0x4abee8
mov dword [0x4ad1c0], 1
call fcn.00454240
push 0x8094
push eax
mov ecx, 0x4aba08
call fcn.00456ac0
push 0
push 0x109
mov ecx, 0x4abee8
call fcn.00454240
mov esi, eax
push 0x8031
push esi
mov ecx, 0x4aba08
call fcn.00456ac0
push 0x8032
push esi
mov ecx, 0x4aba08
call fcn.00456ac0
push 0
push 0xe
mov ecx, 0x4abee8
call fcn.00454240
mov esi, eax
push 0x81b6
push esi
mov ecx, 0x4aba08
call fcn.00456ac0
push 0x8092
push esi
mov ecx, 0x4aba08
call fcn.00456ac0
push 0x8035
push esi
mov ecx, 0x4aba08
call fcn.00456ac0
push 0xafc0
push esi
mov ecx, 0x4aba08
call fcn.00456ac0
push 0x8091
push esi
mov ecx, 0x4aba08
call fcn.00456ac0
push 0
push 0x3e9
mov ecx, 0x4abee8
call fcn.00454240
push 0x8093
push eax
mov ecx, 0x4aba08
call fcn.00456ac0
push 0
push 0x18
mov ecx, 0x4abee8
call fcn.00454240
push 0xe146
push eax
mov ecx, 0x4aba08
call fcn.00456ac0
push 0
push 4
mov ecx, 0x4abee8
call fcn.00454240
mov esi, eax
push 0x8095
push esi
mov ecx, 0x4aba08
call fcn.00456ac0
push 0x8096
push esi
mov ecx, 0x4aba08
call fcn.00456ac0
push 0x81b5
push esi
mov ecx, 0x4aba08
call fcn.00456ac0
push 0x8097
push esi
mov ecx, 0x4aba08
call fcn.00456ac0
push 0
push 0xc0
mov ecx, 0x4abee8
call fcn.00454240
push 0x81b4
push eax
mov ecx, 0x4aba08
call fcn.00456ac0
push 0
push 0x97
mov ecx, 0x4abee8
call fcn.00454240
push 0x8098
push eax
mov ecx, 0x4aba08
call fcn.00456ac0
push 0
push 0x85
mov ecx, 0x4abee8
call fcn.00454240
push 0x814c
push eax
mov ecx, 0x4aba08
call fcn.00456ac0
push 0
push 0x416b
mov ecx, 0x4abee8
call fcn.00454240
mov esi, eax
push 0x81b2
push esi
mov ecx, 0x4aba08
call fcn.00456ac0
push 0x81b3
push esi
mov ecx, 0x4aba08
call fcn.00456ac0
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
push 0x32
call esi
push eax
push 0x31
call esi
mov edx, dword [0x483a70]
push eax
push 1
push 0x80
push edx
call dword [sym.imp.USER32.dll_LoadImageW]
push 0x8099
push eax
mov ecx, 0x4aba08
call fcn.00456ac0
push 0
push 5
mov ecx, 0x4abee8
call fcn.00454240
push 0x7dcd
push eax
mov ecx, 0x4aba08
call fcn.00456ac0
push 0
push 0xf0
mov ecx, 0x4abee8
call fcn.00454240
push 0x7dcc
push eax
mov ecx, 0x4aba08
call fcn.00456ac0
push 0
push 0x10e
mov ecx, 0x4abee8
call fcn.00454240
push 0xaf84
push eax
mov ecx, 0x4aba08
call fcn.00456ac0
lea ecx, [esp + 0x14]
call fcn.00401e80
lea ecx, [esp + 0x10]
call fcn.00401e80
mov eax, dword [esp + 0x3c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret