Function at 0x402090
Capabilities:
Get file system object information
Resolve function by parsing pe exports
Set current directory

Disassembly:
sub esp, 0x470
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x484]
push 0x4be07c
push edi
call fcn.00498650
add esp, 8
test eax, eax
jne 0x402db9
push 0x80
mov dword [esp + 0x54], 0x4aa684
call fcn.004985f0
add esp, 4
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0x1f
mov dword [esp + 0x64], 0x40
mov dword [esp + 0x60], 0
mov dword [esp + 0x4c], 0
mov ebx, edi
mov al, byte [ebx]
test al, al
je 0x402110
cmp al, 0x20
je 0x402108
cmp al, 0x22
jne 0x402110
mov al, byte [ebx + 1]
inc ebx
test al, al
jne 0x402100
mov esi, ebx
cmp ebx, edi
mov dword [esp + 0x10], esi
je 0x402134
cmp byte [ebx - 1], 0x22
jne 0x402134
mov al, byte [ebx]
test al, al
je 0x40214e
cmp al, 0x22
je 0x40214a
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x402126
jmp 0x40214a
mov al, byte [ebx]
test al, al
je 0x40214e
cmp al, 0x20
je 0x40214a
cmp al, 0x22
je 0x40214a
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x40213a
mov dword [esp + 0x10], esi
cmp byte [esi], 0
je 0x402158
mov byte [esi], 0
jmp 0x40215e
xor esi, esi
mov dword [esp + 0x10], esi
cmp byte [ebx], 0
je 0x402210
push 0x4be088
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x402184
mov dword [esp + 0x4c], 1
jmp 0x402210
test ebx, ebx
je 0x402210
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
lea ecx, [eax + 1]
cmp edx, ecx
jne 0x4021fc
mov edx, dword [esp + 0x64]
add eax, edx
lea eax, [eax*4 + 4]
push eax
call fcn.004985f0
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x58]
mov ebp, eax
add esp, 4
lea ecx, [ecx*4 + 4]
mov edi, ebp
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]
mov eax, dword [esp + 0x54]
push eax
call fcn.00498600
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x488]
add esp, 4
add eax, ecx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x5c], eax
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov dword [edx + eax*4], ebx
mov eax, dword [esp + 0x58]
inc eax
mov dword [esp + 0x58], eax
test esi, esi
je 0x40221c
lea ebx, [esi + 1]
jmp 0x4020fa
mov ebp, 0x4aa684
push 0x80
mov dword [esp + 0x18], ebp
call fcn.004985f0
add esp, 4
xor edi, edi
mov ebx, 0x1f
mov esi, 0x40
push 0x80
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x34], ebp
call fcn.004985f0
mov ebp, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [esp + 0x38], eax
mov eax, 1
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
xor ecx, ecx
cmp eax, edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x44], esi
mov dword [esp + 0x10], edi
jle 0x4024fc
cmp edi, eax
jge 0x4022a9
test edi, edi
jl 0x4022a9
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + edi*4]
jmp 0x4022ab
xor eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0x110]
push eax
push edx
call esi
lea eax, [esp + 0x110]
push eax
call ebp
cmp byte [esp + eax + 0x10f], 0x5c
jne 0x4022f1
lea ecx, [esp + 0x110]
push ecx
call ebp
cmp eax, 3
jle 0x4022f1
lea edx, [esp + 0x110]
push edx
call ebp
mov byte [esp + eax + 0x10f], 0
lea eax, [esp + 0x110]
push 0
push eax
lea ecx, [esp + 0x118]
push 0x105
push ecx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
lea edx, [esp + 0x218]
lea eax, [esp + 0x110]
push edx
push eax
call fcn.0043e2f0
add esp, 8
test eax, eax
jne 0x40233c
lea ecx, [esp + 0x110]
lea edx, [esp + 0x218]
push ecx
push edx
call esi
lea eax, [esp + 0x218]
push 0x2a
push eax
xor esi, esi
call fcn.00498920
add esp, 8
test eax, eax
jne 0x40239c
lea ecx, [esp + 0x218]
push 0x3f
push ecx
call fcn.00498920
add esp, 8
test eax, eax
jne 0x40239c
push 0x800
lea edx, [esp + 0x324]
push 0x160
push edx
push eax
lea eax, [esp + 0x228]
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
test eax, eax
je 0x40239c
mov esi, dword [esp + 0x328]
shr esi, 0x1d
and esi, 1
lea ecx, [esp + 0x218]
test esi, esi
push ecx
je 0x402446
call fcn.0043c610
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4024dd
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 1]
cmp ecx, edx
jne 0x40242d
mov ecx, dword [esp + 0x44]
add eax, ecx
lea edx, [eax*4 + 4]
push edx
call fcn.004985f0
mov ebp, eax
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x38]
mov edi, ebp
lea ecx, [eax*4 + 4]
add esp, 4
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]
mov eax, dword [esp + 0x34]
push eax
call fcn.00498600
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
add esp, 4
add eax, ecx
mov dword [esp + 0x34], ebp
mov ebp, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [edx + eax*4], ebx
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x38], eax
jmp 0x4024e7
call fcn.0043c610
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4024dd
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + 1]
cmp ecx, edx
jne 0x4024bd
mov ecx, dword [esp + 0x28]
add eax, ecx
lea edx, [eax*4 + 4]
push edx
call fcn.004985f0
mov ebp, eax
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edi, ebp
lea ecx, [eax*4 + 4]
add esp, 4
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]
mov eax, dword [esp + 0x18]
push eax
call fcn.00498600
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
add esp, 4
add eax, ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [edx + eax*4], ebx
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
jmp 0x4024e7
mov ebp, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x58]
inc edi
cmp edi, eax
mov dword [esp + 0x10], edi
jl 0x40229c
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x4c]
xor edi, edi
cmp eax, edi
mov eax, dword [esp + 0x1c]
je 0x4029f0
cmp eax, edi
jne 0x402534
mov ecx, dword [str.ACDSee_32]
mov edx, dword [0x4caf20]
push edi
push ecx
push 0x1fd
push edi
push edx
call fcn.0043ce30
add esp, 0x14
jmp 0x402902
push 0x80
mov dword [esp + 0x70], 0x4aa684
call fcn.004985f0
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], 0x1f
mov dword [esp + 0x80], 0x40
mov dword [esp + 0x7c], 1
mov dword [esp + 0x4c], edi
jle 0x402840
jmp 0x402582
mov edi, dword [esp + 0x4c]
cmp edi, eax
jge 0x402593
test edi, edi
jl 0x402593
mov eax, dword [esp + 0x18]
mov esi, dword [eax + edi*4]
jmp 0x402595
xor esi, esi
push 0x2a
push esi
call fcn.00498920
add esp, 8
test eax, eax
jne 0x402667
push 0x3f
push esi
call fcn.00498920
add esp, 8
test eax, eax
jne 0x402667
cmp edi, dword [esp + 0x1c]
jge 0x4025ce
test edi, edi
jl 0x4025ce
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + edi*4]
jmp 0x4025d0
xor eax, eax
push eax
call fcn.0043c610
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x40282b
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
lea edx, [eax + 1]
cmp ecx, edx
jne 0x40264e
mov ecx, dword [esp + 0x80]
add ecx, eax
lea edx, [ecx*4 + 4]
push edx
call fcn.004985f0
mov ebp, eax
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x74]
mov edi, ebp
lea ecx, [eax*4 + 4]
add esp, 4
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]
mov eax, dword [esp + 0x70]
push eax
call fcn.00498600
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x7c]
add esp, 4
add eax, ecx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x78], eax
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov dword [edx + eax*4], ebx
mov eax, dword [esp + 0x74]
inc eax
mov dword [esp + 0x74], eax
jmp 0x40282b
lea ecx, [esp + 0x8c]
call fcn.0041e310
lea ecx, [esp + 0x88]
lea edx, [esp + 0x320]
push ecx
push edx
push 0x104
push esi
mov dword [esp + 0xac], 1
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov eax, dword [esp + 0x88]
test eax, eax
je 0x4026be
push eax
lea eax, [esp + 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, dword [esp + 0x88]
mov byte [ecx], 0
lea edx, [esp + 0x218]
push 0
lea eax, [esp + 0x324]
push edx
push eax
lea ecx, [esp + 0x98]
call fcn.0041e410
mov ecx, dword [esp + 0x94]
cmp ecx, 2
jl 0x402707
push 0x4035d0
push 4
push ecx
mov ecx, dword [esp + 0x9c]
push ecx
call fcn.004986d0
mov ecx, dword [esp + 0xa4]
add esp, 0x10
xor eax, eax
test ecx, ecx
mov dword [esp + 0x10], eax
jle 0x40281f
jmp 0x40271b
mov eax, dword [esp + 0x10]
cmp eax, ecx
jge 0x40272f
test eax, eax
jl 0x40272f
mov edx, dword [esp + 0x90]
mov eax, dword [edx + eax*4]
jmp 0x402731
xor eax, eax
mov edx, dword [eax + 4]
test edx, edx
jne 0x40280e
mov eax, dword [esp + 0x10]
cmp eax, ecx
jge 0x402754
test eax, eax
jl 0x402754
mov ecx, dword [esp + 0x90]
mov eax, dword [ecx + eax*4]
jmp 0x402756
xor eax, eax
mov edx, dword [eax + 0x5c]
lea eax, [esp + 0x320]
push edx
lea ecx, [esp + 0x114]
push eax
push ecx
call fcn.0043c6e0
add esp, 0xc
lea edx, [esp + 0x110]
push edx
call fcn.0043c610
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x402807
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
lea ecx, [eax + 1]
cmp edx, ecx
jne 0x4027f3
mov edx, dword [esp + 0x80]
add edx, eax
lea eax, [edx*4 + 4]
push eax
call fcn.004985f0
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x74]
mov ebp, eax
add esp, 4
lea ecx, [ecx*4 + 4]
mov edi, ebp
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]
mov eax, dword [esp + 0x70]
push eax
call fcn.00498600
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x7c]
add esp, 4
add eax, ecx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x78], eax
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov dword [edx + eax*4], ebx
mov eax, dword [esp + 0x74]
inc eax
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x402717
lea ecx, [esp + 0x8c]
call fcn.0041e3a0
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x4c], ecx
jl 0x40257e
lea ecx, [esp + 0xac]
call fcn.0043e5f0
mov ecx, dword [0x4caf20]
mov esi, 0x4cabdd
mov dword [esp + 0xac], ecx
mov ecx, 0x10
lea edi, [esp + 0xb4]
mov dword [esp + 0xb0], 0
rep movsd dword es:[edi], dword [esi]
mov edi, dword [0x4be040]
xor edx, edx
test edi, edi
lea eax, [esp + 0x6c]
lea ecx, [esp + 0xac]
sete dl
push eax
push ecx
mov dword [esp + 0x114], edx
call fcn.0043ead0
mov eax, dword [esp + 0x84]
add esp, 8
mov ecx, 0x10
lea esi, [esp + 0xb4]
mov edi, 0x4cabdd
mov dword [esp + 0x6c], 0x4aa684
test eax, eax
rep movsd dword es:[edi], dword [esi]
je 0x4028f5
mov eax, dword [esp + 0x74]
xor esi, esi
test eax, eax
jle 0x4028f5
cmp esi, eax
jge 0x4028e1
test esi, esi
jl 0x4028e1
mov edx, dword [esp + 0x70]
mov eax, dword [edx + esi*4]
jmp 0x4028e3
xor eax, eax
push eax
call fcn.00498600
mov eax, dword [esp + 0x78]
add esp, 4
inc esi
cmp esi, eax
jl 0x4028d4
mov eax, dword [esp + 0x70]
push eax
call fcn.00498600
add esp, 4
mov eax, dword [esp + 0x40]
mov dword [esp + 0x30], 0x4aa684
test eax, eax
je 0x402941
mov eax, dword [esp + 0x38]
xor esi, esi
test eax, eax
jle 0x402941
cmp esi, eax
jge 0x40292d
test esi, esi
jl 0x40292d
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + esi*4]
jmp 0x40292f
xor eax, eax
push eax
call fcn.00498600
mov eax, dword [esp + 0x3c]
add esp, 4
inc esi
cmp esi, eax
jl 0x402920
mov edx, dword [esp + 0x34]
push edx
call fcn.00498600
mov eax, dword [esp + 0x28]
add esp, 4
mov edi, 0x4aa684
test eax, eax
mov dword [esp + 0x14], edi
je 0x40298e
mov eax, dword [esp + 0x1c]
xor esi, esi
test eax, eax
jle 0x40298e
cmp esi, eax
jge 0x40297a
test esi, esi
jl 0x40297a
mov eax, dword [esp + 0x18]
mov eax, dword [eax + esi*4]
jmp 0x40297c
xor eax, eax
push eax
call fcn.00498600
mov eax, dword [esp + 0x20]
add esp, 4
inc esi
cmp esi, eax
jl 0x40296d
mov ecx, dword [esp + 0x18]
push ecx
call fcn.00498600
mov eax, dword [esp + 0x64]
add esp, 4
test eax, eax
mov dword [esp + 0x50], edi
je 0x4029d6
mov eax, dword [esp + 0x58]
xor esi, esi
test eax, eax
jle 0x4029d6
cmp esi, eax
jge 0x4029c2
test esi, esi
jl 0x4029c2
mov edx, dword [esp + 0x54]
mov eax, dword [edx + esi*4]
jmp 0x4029c4
xor eax, eax
push eax
call fcn.00498600
mov eax, dword [esp + 0x5c]
add esp, 4
inc esi
cmp esi, eax
jl 0x4029b5
mov eax, dword [esp + 0x54]
push eax
call fcn.00498600
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x470
ret
cmp eax, edi
je 0x402b07
mov esi, dword [0x4caa60]
xor ecx, ecx
cmp esi, edi
lea edx, [esp + 0x14]
setne cl
push ecx
mov ecx, dword [0x4caf1c]
push edi
push edi
push edx
call fcn.00434490
test eax, eax
je 0x402b14
mov eax, dword [esp + 0x40]
mov dword [esp + 0x30], 0x4aa684
cmp eax, edi
je 0x402a5f
mov eax, dword [esp + 0x38]
xor esi, esi
test eax, eax
jle 0x402a5f
cmp esi, eax
jge 0x402a4b
test esi, esi
jl 0x402a4b
mov eax, dword [esp + 0x34]
mov eax, dword [eax + esi*4]
jmp 0x402a4d
xor eax, eax
push eax
call fcn.00498600
mov eax, dword [esp + 0x3c]
add esp, 4
inc esi
cmp esi, eax
jl 0x402a3e
mov ecx, dword [esp + 0x34]
push ecx
call fcn.00498600
mov eax, dword [esp + 0x28]
add esp, 4
mov edi, 0x4aa684
test eax, eax
mov dword [esp + 0x14], edi
je 0x402aa3
mov eax, dword [esp + 0x1c]
xor esi, esi
test eax, eax
jle 0x402aa3
push esi
lea ecx, [esp + 0x18]
call fcn.004035b0
push eax
call fcn.00498600
mov eax, dword [esp + 0x20]
add esp, 4
inc esi
cmp esi, eax
jl 0x402a87
mov edx, dword [esp + 0x18]
push edx
call fcn.00498600
mov eax, dword [esp + 0x64]
add esp, 4
test eax, eax
mov dword [esp + 0x50], edi
je 0x402c5d
mov eax, dword [esp + 0x58]
xor esi, esi
test eax, eax
jle 0x402c5d
push esi
lea ecx, [esp + 0x54]
call fcn.004035b0
push eax
call fcn.00498600
mov eax, dword [esp + 0x5c]
add esp, 4
inc esi
cmp esi, eax
jl 0x402ace
mov eax, dword [esp + 0x54]
push eax
call fcn.00498600
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x470
ret
mov al, byte [0x4caba1]
test al, al
jne 0x402b8d
cmp ecx, edi
jne 0x402b85
mov edi, dword [esp + 0x484]
push edi
call ebp
add eax, 0x50
push eax
call fcn.004985f0
mov ecx, dword [0x4caf20]
add esp, 4
mov esi, eax
push edi
push 0x1fe
push ecx
push esi
call fcn.0043e2a0
mov edx, dword [str.ACDSee_32]
add esp, 0x10
push 0x30
push edx
push esi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push esi
call fcn.00498600
add esp, 4
lea ecx, [esp + 0x30]
call fcn.004034f0
lea ecx, [esp + 0x14]
call fcn.004034f0
lea ecx, [esp + 0x50]
call fcn.004034f0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x470
ret
test al, al
je 0x402c7a
cmp ecx, edi
je 0x402ba4
jle 0x402b9b
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
jmp 0x402b9d
xor eax, eax
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x30], 0x4aa684
cmp eax, edi
je 0x402bda
mov eax, dword [esp + 0x38]
xor esi, esi
test eax, eax
jle 0x402bda
push esi
lea ecx, [esp + 0x34]
call fcn.004035b0
push eax
call fcn.00498600
mov eax, dword [esp + 0x3c]
add esp, 4
inc esi
cmp esi, eax
jl 0x402bbe
mov ecx, dword [esp + 0x34]
push ecx
call fcn.00498600
mov eax, dword [esp + 0x28]
add esp, 4
mov edi, 0x4aa684
test eax, eax
mov dword [esp + 0x14], edi
je 0x402c1e
mov eax, dword [esp + 0x1c]
xor esi, esi
test eax, eax
jle 0x402c1e
push esi
lea ecx, [esp + 0x18]
call fcn.004035b0
push eax
call fcn.00498600
mov eax, dword [esp + 0x20]
add esp, 4
inc esi
cmp esi, eax
jl 0x402c02
mov edx, dword [esp + 0x18]
push edx
call fcn.00498600
mov eax, dword [esp + 0x64]
add esp, 4
test eax, eax
mov dword [esp + 0x50], edi
je 0x402c5d
mov eax, dword [esp + 0x58]
xor esi, esi
test eax, eax
jle 0x402c5d
push esi
lea ecx, [esp + 0x54]
call fcn.004035b0
push eax
call fcn.00498600
mov eax, dword [esp + 0x5c]
add esp, 4
inc esi
cmp esi, eax
jl 0x402c41
mov eax, dword [esp + 0x54]
push eax
call fcn.00498600
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x470
ret
mov ecx, dword [0x4caf1c]
push 1
call fcn.00435e00
cmp dword [0x4caf18], edi
jne 0x402c99
push 0xa
call fcn.00401430
add esp, 4
cmp dword [esp + 0x38], edi
jle 0x402ca7
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx]
jmp 0x402ca9
xor eax, eax
push edi
push 1
push eax
call fcn.00401470
add esp, 0xc
test eax, eax
jne 0x402d9e
mov edi, dword [esp + 0x484]
push edi
call ebp
add eax, 0x50
push eax
call fcn.004985f0
mov edx, dword [0x4caf20]
add esp, 4
mov esi, eax
push edi
push 0x1fe
push edx
push esi
call fcn.0043e2a0
mov eax, dword [str.ACDSee_32]
add esp, 0x10
push 0x30
push eax
push esi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push esi
call fcn.00498600
mov eax, dword [esp + 0x44]
add esp, 4
mov edi, 0x4aa684
test eax, eax
mov dword [esp + 0x30], edi
je 0x402d3c
mov eax, dword [esp + 0x38]
xor esi, esi
test eax, eax
jle 0x402d3c
push esi
lea ecx, [esp + 0x34]
call fcn.004035b0
push eax
call fcn.00498600
mov eax, dword [esp + 0x3c]
add esp, 4
inc esi
cmp esi, eax
jl 0x402d20
mov ecx, dword [esp + 0x34]
push ecx
call fcn.00498600
mov eax, dword [esp + 0x28]
add esp, 4
test eax, eax
mov dword [esp + 0x14], edi
je 0x402d7b
mov eax, dword [esp + 0x1c]
xor esi, esi
test eax, eax
jle 0x402d7b
push esi
lea ecx, [esp + 0x18]
call fcn.004035b0
push eax
call fcn.00498600
mov eax, dword [esp + 0x20]
add esp, 4
inc esi
cmp esi, eax
jl 0x402d5f
mov edx, dword [esp + 0x18]
push edx
call fcn.00498600
add esp, 4
lea ecx, [esp + 0x50]
call fcn.004034f0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x470
ret
lea ecx, [esp + 0x30]
call fcn.004034f0
lea ecx, [esp + 0x14]
call fcn.004034f0
lea ecx, [esp + 0x50]
call fcn.004034f0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x470
ret