Function at 0x42bd68
Capabilities:
Check if file exists
Delete file
Get file attributes
Move file

Disassembly:
sub esp, 0x75c
push ebx
push ebp
push esi
mov esi, ecx
lea eax, [esp + 0x30]
push edi
mov ecx, dword [esi + 0x14]
push eax
push 0
push ecx
call fcn.0044a190
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0xc0]
push edx
push eax
push ecx
call fcn.0044aba0
mov eax, dword [esi + 8]
add esp, 0x18
lea edx, [esp + 0xb4]
push edx
push 0x19d
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov ecx, dword [esi + 8]
push 0x194
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
mov ebp, eax
push 0
push 0x110a
push ebp
call edi
mov ebx, eax
push ebx
push ebp
call fcn.0044cf60
mov edx, dword [esi + 0x14]
add esp, 8
add edx, 0x106
mov dword [esp + 0x14], eax
push eax
push 0
push 0
push 0x10
push 0
push edx
call dword [sym.imp.ole32.dll_StgOpenStorage]
test eax, eax
jge 0x42be1d
push 0x30
push eax
mov eax, dword [esi]
push 0x22d
push eax
call fcn.0044afc0
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x75c
ret
mov ecx, dword [esi + 0x14]
lea edx, [esp + 0x258]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x258]
push str..tmp
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0x258]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x42be8b
lea edx, [esp + 0x258]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x42be8b
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push 0x22e
push eax
push ecx
call fcn.0044aec0
add esp, 0xc
mov eax, 0x80004005
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x75c
ret
lea edx, [esp + 0x564]
push 0x104
push edx
lea eax, [esp + 0x260]
push 0xffffffffffffffff
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x564]
add ecx, 4
push ecx
push 0
push 0x12
push edx
call dword [sym.imp.ole32.dll_StgCreateDocfile]
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x42bef0
mov edi, eax
mov eax, dword [esi]
push 0x30
push edi
push 0x22f
push eax
call fcn.0044afc0
add esp, 0x10
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x75c
ret
mov ecx, dword [esi + 8]
xor eax, eax
push 0x3e80000
push eax
push 0x401
push 0x19a
push ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], 0xfffffff6
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov edx, dword [esi + 8]
push 0x3e80000
push 0
push 0x401
push 0x19c
push edx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov eax, dword [esi + 8]
push 0x4eb858
push 0x19b
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov edx, dword [esi]
lea ecx, [esp + 0xb4]
push 0x50
push ecx
push 0xc2
push edx
call dword [sym.imp.USER32.dll_LoadStringA]
mov ecx, dword [esi + 8]
lea eax, [esp + 0xb4]
push eax
push 0xf2
push ecx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
test ebx, ebx
je 0x42c175
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x42c1ae
push ebx
push ebp
call fcn.0044cf60
mov edx, dword [eax + 0x5c]
add esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [esi + 8]
push edx
push 0x19b
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov ecx, dword [esi + 8]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov edx, dword [esp + 0x10]
cmp dword [edx], 0
je 0x42c02e
mov eax, edx
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x42c02e
lea ecx, [esp + 0x64]
push ecx
push str.Index
call fcn.00428950
mov edx, dword [esp + 0x18]
add esp, 8
mov eax, dword [edx]
lea edx, [esp + 0x64]
push 1
push edx
mov edx, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [edx + 4]
push edx
lea edx, [esp + 0x70]
push edx
push eax
call dword [ecx + 0x20]
lea eax, [esp + 0x64]
push eax
push str.Info
call fcn.00428950
mov ecx, dword [esp + 0x18]
add esp, 8
mov eax, dword [ecx]
lea ecx, [esp + 0x64]
push 1
push ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [eax]
mov ecx, dword [ecx + 4]
push ecx
lea ecx, [esp + 0x70]
push ecx
push eax
call dword [edx + 0x20]
push ebx
push 4
push 0x110a
push ebp
call edi
test eax, eax
mov dword [esp + 0x10], eax
jne 0x42c0bf
push ebx
push ebp
call fcn.0044cf60
mov dword [esp + 0x18], eax
mov eax, dword [eax]
add esp, 8
test eax, eax
je 0x42c065
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x10]
mov dword [eax], 0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
test eax, eax
je 0x42c081
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 0
push ebx
push 1
push 0x110a
push ebp
call edi
test eax, eax
mov dword [esp + 0x10], eax
jne 0x42c0bf
push ebx
push 3
push 0x110a
push ebp
call edi
mov ebx, eax
test ebx, ebx
je 0x42c175
push 0
push 0
push 0x110a
push ebp
call edi
cmp ebx, eax
je 0x42c20e
jmp 0x42c041
push 0
push 0
push 0x110a
push ebp
call edi
mov ecx, dword [esp + 0x10]
cmp ecx, eax
je 0x42c20e
mov ebx, ecx
push ebx
push 3
push 0x110a
push ebp
call edi
push eax
push ebp
call fcn.0044cf60
mov ecx, ebx
mov dword [esp + 0x20], eax
push ecx
push ebp
call fcn.0044cf60
mov edx, dword [esp + 0x28]
add esp, 0x10
mov dword [esp + 0x20], eax
add eax, 8
push dword [esp + 0x20]
mov ecx, dword [edx]
mov dword [esp + 0x2c], eax
mov edx, dword [ecx]
push 0
push 0
push 0x10
push 0
push eax
push ecx
call dword [edx + 0x18]
test eax, eax
mov dword [esp + 0x1c], eax
jl 0x42c14f
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
add edx, 4
mov eax, dword [eax + 4]
push edx
mov edx, dword [esp + 0x2c]
push 0
mov ecx, dword [eax]
push 0
push 0x12
push edx
push eax
call dword [ecx + 0x14]
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x42c169
push 0x30
push eax
mov eax, dword [esi]
push 0x230
push eax
call fcn.0044afc0
add esp, 0x10
mov dword [esi + 0x1c], 1
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x42bf82
mov ecx, dword [esi + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x42c730
mov edx, dword [esp + 0x1c]
mov eax, dword [esi]
push 0x30
push edx
push 0x22e
push eax
call fcn.0044afc0
add esp, 0x10
mov eax, 0x80004005
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x75c
ret
test ebx, ebx
je 0x42c83e
xor edi, edi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
cmp eax, edi
je 0x42c1ce
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x14]
mov dword [eax], edi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
cmp eax, edi
je 0x42c1e6
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x14]
mov dword [eax + 4], edi
push ebx
push 3
push 0x110a
push ebp
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, eax
push ebx
push ebp
call fcn.0044cf60
add esp, 8
cmp ebx, edi
mov dword [esp + 0x14], eax
jne 0x42c1b8
jmp 0x42c83e
test ebx, ebx
je 0x42c175
push ebx
push ebp
call fcn.0044cf60
add esp, 8
mov dword [esp + 0x10], eax
push ebx
push 3
push 0x110a
push ebp
call edi
push eax
push 2
push 0x1102
push ebp
call edi
push ebx
push 9
push 0x110b
push ebp
call edi
push ebx
push 0
push 0x1114
push ebp
call edi
mov edi, dword [esp + 0x10]
mov edx, dword [esi + 8]
mov ecx, dword [edi + 0x5c]
push ecx
push 0x19b
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov eax, dword [esi + 8]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
test byte [edi + 0x80], 0x20
jne 0x42c5b8
mov cl, byte [0x4eb858]
xor eax, eax
mov byte [esp + 0x35c], cl
mov ecx, 0x40
lea edi, [esp + 0x35d]
mov edx, dword [esp + 0x10]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [edx + 0x5c]
test eax, eax
je 0x42c2b8
push eax
lea eax, [esp + 0x360]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, dword [esp + 0x10]
xor edi, edi
mov eax, dword [ecx]
lea ecx, [esp + 0x14]
push ecx
push edi
mov edx, dword [eax]
push edi
push edi
push eax
call dword [edx + 0x2c]
test eax, eax
jl 0x42c5b8
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x18], 0xffffffff
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x42c6af
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x68]
mov dword [esp + 0x24], 0
mov edx, dword [eax]
push ecx
push 1
push eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x42c5ae
cmp dword [esp + 0x68], 2
jne 0x42c2e6
mov dl, byte [0x4eb858]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x461]
mov byte [esp + 0x460], dl
mov byte [esp + 0x104], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x105]
push 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0
lea edx, [esp + 0x10c]
stosb byte es:[edi], al
mov eax, dword [esp + 0x6c]
push 0x104
push edx
push 0xffffffffffffffff
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
je 0x42c3da
mov cl, byte [esp + 0x104]
lea eax, [esp + 0x104]
test cl, cl
je 0x42c3ba
mov cl, byte [eax]
cmp cl, 0x2a
jne 0x42c3a0
mov byte [eax], 0x2e
jmp 0x42c3b2
cmp cl, 0x3f
jne 0x42c3aa
mov byte [eax], 0x21
jmp 0x42c3b2
cmp cl, 0x7c
jne 0x42c3b2
mov byte [eax], 0x3a
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x42c394
lea ecx, [esp + 0x104]
lea edx, [esp + 0x35c]
push ecx
lea eax, [esp + 0x464]
push edx
push eax
call fcn.0044a2d0
add esp, 0xc
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x30]
add edi, ecx
push str.Index
adc eax, edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], eax
lea eax, [esp + 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x42c2e6
lea ecx, [esp + 0x104]
push str.Info
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x42c2e6
mov edx, dword [esp + 0x10]
test byte [edx + 0x80], 0x10
je 0x42c454
lea edx, [esp + 0x460]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x42c2e6
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x70]
add edi, eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x48]
adc edi, ecx
mov ecx, dword [esp + 0x64]
push 1
push ecx
mov dword [esp + 0x50], edi
mov edi, dword [eax]
push edx
push ecx
push eax
call dword [edi + 0x20]
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x42c4a8
push 0x31
push eax
mov eax, dword [esi]
push 0x230
push eax
call fcn.0044afc0
add esp, 0x10
cmp eax, 2
je 0x42c709
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x2c]
mov edi, dword [esi + 0x24]
fild qword [esp + 0x2c]
add ecx, eax
adc edx, edi
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
fild qword [esp + 0x54]
fdivp st(1)
fmul qword [0x4cc820]
call fcn.004bedcc
mov edi, eax
mov eax, dword [esp + 0x24]
cmp edi, eax
je 0x42c55e
mov eax, 0x66666667
imul edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x66666667
mov ecx, edx
imul dword [esp + 0x24]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp ecx, edx
je 0x42c539
push ecx
mov ecx, dword [esi]
push 0xc0
lea edx, [esp + 0x210]
push ecx
push edx
call fcn.0044c380
mov ecx, dword [esi + 8]
add esp, 0x10
lea eax, [esp + 0x208]
push eax
push 0xf2
push ecx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov edx, dword [esi + 8]
push 0
push edi
push 0x402
push 0x19a
push edx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov eax, dword [esi + 8]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x10]
fild qword [esp + 0x44]
fild qword [ecx + 0x68]
fdivp st(1)
fmul qword [0x4cc820]
call fcn.004bedcc
mov edi, eax
mov eax, dword [esp + 0x18]
cmp edi, eax
je 0x42c2e6
mov edx, dword [esi + 8]
push 0
push edi
push 0x402
push 0x19c
push edx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov eax, dword [esi + 8]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov dword [esp + 0x18], edi
jmp 0x42c2e6
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push ebx
push 4
push 0x110a
push ebp
call dword [sym.imp.USER32.dll_SendMessageA]
mov edi, eax
test edi, edi
jne 0x42c629
push ebx
push ebp
call fcn.0044cf60
mov edi, eax
add esp, 8
mov eax, dword [edi]
test eax, eax
je 0x42c5eb
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [edi], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x42c5ff
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [edi + 4], 0
push ebx
push 1
push 0x110a
push ebp
call dword [sym.imp.USER32.dll_SendMessageA]
mov edi, eax
test edi, edi
jne 0x42c629
push ebx
push 3
push 0x110a
push ebp
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, eax
test ebx, ebx
jne 0x42c5cd
test edi, edi
mov ebx, edi
je 0x42c175
push edi
push 3
push 0x110a
push ebp
call dword [sym.imp.USER32.dll_SendMessageA]
push eax
push ebp
call fcn.0044cf60
push edi
push ebp
mov dword [esp + 0x28], eax
call fcn.0044cf60
mov edx, dword [esp + 0x28]
add esp, 0x10
mov edi, eax
mov eax, dword [edx]
push edi
push 0
push 0
mov edx, dword [eax]
lea ecx, [edi + 8]
push 0x10
push 0
push ecx
push eax
mov dword [esp + 0x44], ecx
call dword [edx + 0x18]
test eax, eax
jl 0x42c718
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
add edi, 4
mov eax, dword [eax + 4]
push edi
push 0
push 0
mov ecx, dword [eax]
push 0x12
push 0
push edx
push eax
call dword [ecx + 0x18]
test eax, eax
mov dword [esp + 0x1c], eax
jl 0x42c718
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x42c216
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
test ebx, ebx
je 0x42c83e
mov edi, dword [esp + 0x10]
mov eax, dword [edi]
push eax
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [edi + 4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push ebx
push 3
push 0x110a
push ebp
mov dword [edi], 0
mov dword [edi + 4], 0
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, eax
push ebx
push ebp
call fcn.0044cf60
add esp, 8
mov edi, eax
test ebx, ebx
jne 0x42c6c5
jmp 0x42c83e
mov eax, dword [esp + 0x14]
push eax
mov edx, dword [eax]
call dword [edx + 8]
jmp 0x42c83e
push 0x30
push eax
mov eax, dword [esi]
push 0x22d
push eax
call fcn.0044afc0
add esp, 0x10
jmp 0x42c83e
mov ecx, dword [esi + 0x14]
lea edx, [esp + 0x258]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
jne 0x42c76d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi]
push 0x30
push eax
push 0x231
push ecx
call fcn.0044afc0
add esp, 0x10
mov eax, 0x80004005
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x75c
ret
mov eax, dword [esi + 0x14]
lea edx, [esp + 0x3c]
push edx
push 0
push eax
call fcn.0044a190
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0xc0]
push ecx
push edx
push eax
call fcn.0044aba0
mov edx, dword [esi + 8]
mov edi, dword [sym.imp.USER32.dll_SetDlgItemTextA]
add esp, 0x18
lea ecx, [esp + 0xb4]
push ecx
push 0x19e
push edx
call edi
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x40]
lea eax, [esp + 0xb4]
push eax
mov eax, dword [esp + 0x40]
sub ecx, eax
sbb edx, ebx
push edx
push ecx
call fcn.0044aba0
mov ecx, dword [esi + 8]
add esp, 0xc
lea eax, [esp + 0xb4]
push eax
push 0x19f
push ecx
call edi
mov edx, dword [esi]
push 0x64
push 0xc0
lea eax, [esp + 0xbc]
push edx
push eax
call fcn.0044c380
mov edx, dword [esi + 8]
add esp, 0x10
lea ecx, [esp + 0xb4]
push ecx
push 0xf2
push edx
call edi
mov ecx, dword [esi]
lea eax, [esp + 0xb4]
push 0x50
push eax
push 0xc1
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
mov eax, dword [esi + 8]
lea edx, [esp + 0xb4]
push edx
push 2
push eax
call edi
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0x110a
push ebp
call ebx
mov edi, eax
push edi
push 9
push 0x110b
push ebp
call ebx
push edi
push 0
push 0x1114
push ebp
call ebx
mov ecx, dword [esi + 8]
mov edi, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push 0
push 0
push 0x402
push 0x19c
push ecx
call edi
mov edx, dword [esi + 8]
push 0
push 0
push 0x402
push 0x19a
push edx
call edi
mov eax, dword [esi + 8]
push 0x4eb858
push 0x19b
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x42c94f
mov edx, dword [esi + 8]
mov edi, dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [esp + 0x54]
push ecx
push edx
call edi
mov ecx, dword [esi + 8]
mov ebx, dword [sym.imp.USER32.dll_GetDlgItem]
lea eax, [esp + 0x44]
push eax
push 2
push ecx
call ebx
push eax
call edi
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0x58]
push 6
mov ecx, dword [esi + 8]
lea eax, [edx + 0xa]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x64], eax
sub eax, ebp
push eax
mov eax, dword [esp + 0x64]
sub eax, edx
push eax
push 0
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov edx, dword [esi + 8]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [esi + 8]
push 1
push 1
push eax
call ebx
mov edi, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call edi
mov ecx, dword [esi + 8]
push 1
push 5
push ecx
call ebx
push eax
call edi
mov edx, dword [esi + 8]
push 1
push 7
push edx
call ebx
push eax
call edi
mov eax, dword [esi + 8]
push 1
push 6
push eax
call ebx
push eax
call edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x75c
ret