Function at 0x4067c0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov eax, 1
xor ebp, ebp
push edi
mov edx, 0x4284b4
push esi
push ebx
sub esp, 0x5c
mov dword [0x428488], eax
xor eax, eax
mov dword [0x438dc4], eax
mov eax, dword [0x428470]
mov dword [esp + 0x48], 0
mov dword [esp + 0x3c], 0
test eax, eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [0x428cb4], edx
jne 0x40726d
mov eax, dword [0x428474]
test eax, eax
jne 0x40722f
mov dword [esp + 0x28], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
nop
xor edi, edi
lea esi, [esi]
lea edi, [edi]
mov dword [esp + 4], 4
mov esi, edi
shl esi, 5
mov dword [esp], 0x4284a4
add esi, 0x4284b4
mov dword [0x428cb4], esi
call fcn.0040a230
test eax, eax
je 0x407225
mov dword [esp + 8], 4
mov dword [esp + 4], 0x427050
mov dword [esp], 0x4284a4
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x40717d
call fcn.00411380
test eax, eax
jne 0x407179
movzx esi, word [0x438d30]
mov dword [esp + 4], 2
mov dword [esp], esi
call fcn.0040b300
test eax, eax
mov ebx, eax
je 0x4068f8
cmp eax, ebp
jle 0x4068f1
mov ebp, eax
dec ebx
jg 0x40714f
movzx edx, word [0x438d32]
mov dword [esp + 4], 3
mov dword [esp], edx
call fcn.0040b300
test eax, eax
mov ebx, eax
je 0x406922
cmp eax, ebp
jle 0x40691b
mov ebp, eax
dec ebx
jg 0x407111
movzx ecx, word [0x438d34]
mov dword [esp + 4], 0
mov dword [esp], ecx
call fcn.0040b300
test eax, eax
mov ebx, eax
je 0x40694c
cmp eax, ebp
jle 0x406945
mov ebp, eax
dec ebx
jg 0x4070b7
mov ebx, dword [0x428478]
test ebx, ebx
jne 0x406ff0
mov eax, dword [0x428470]
mov ebx, 1
test eax, eax
je 0x406978
xor esi, esi
xor ebx, ebx
cmp esi, eax
jb 0x407061
test ebx, ebx
je 0x406990
xor esi, esi
cmp esi, dword [0x428474]
jb 0x407010
test ebx, ebx
jne 0x406ff0
mov esi, esi
inc dword [esp + 0x28]
cmp edi, 0x3f
jbe 0x406870
mov dword [esp + 0x18], ebp
mov ebx, dword [0x438cc4]
lea ecx, [esp + 0x58]
mov dword [esp + 0x14], ecx
mov edx, dword [0x438cc8]
lea eax, [esp + 0x54]
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x4c]
mov esi, dword [0x438cec]
mov dword [esp + 0x44], ebx
lea ebx, [esp + 0x50]
mov dword [esp + 0x40], edx
lea edx, [esp + 0x48]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], edi
call fcn.004076f0
test eax, eax
je 0x406a0b
cmp eax, ebp
jle 0x4069f5
mov ebp, eax
cmp dword [0x438dc8], 1
jg 0x406fe0
cmp ebp, 0x50
je 0x406fe0
mov dword [esp + 4], esi
mov ebx, dword [0x438ce4]
mov edi, esi
mov dword [esp + 0xc], 0
sar edi, 0x1f
mov dword [esp + 8], edi
mov dword [esp], ebx
call sub.msvcrt.dll__lseeki64
mov dword [0x438cec], eax
mov edx, dword [0x438cc0]
mov ecx, dword [0x438ce4]
mov dword [esp + 8], 0x2000
mov dword [esp + 4], edx
mov dword [esp], ecx
call sub.msvcrt.dll__read
inc dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
test edi, edi
mov dword [0x438cc4], eax
mov dword [0x438cc8], esi
je 0x406860
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x406e83
call fcn.0041aa10
mov edi, dword [esp + 0x30]
test edi, edi
je 0x406ac2
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x406ab6
mov eax, dword [0x428470]
xor esi, esi
cmp esi, eax
jae 0x406ab6
mov edi, dword [esp + 0x30]
mov edx, dword [edi + esi*4]
test edx, edx
je 0x406e2b
inc esi
cmp esi, eax
jb 0x406aa2
mov esi, dword [esp + 0x30]
mov dword [esp], esi
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x406afd
mov edx, dword [esp + 0x38]
test edx, edx
je 0x406af1
mov eax, dword [0x428474]
xor esi, esi
cmp esi, eax
jae 0x406af1
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx + esi*4]
test edi, edi
je 0x406ddf
inc esi
cmp esi, eax
jb 0x406add
mov esi, dword [esp + 0x2c]
mov dword [esp], esi
call sub.msvcrt.dll_free
mov edi, dword [esp + 0x38]
test edi, edi
je 0x406b70
mov ecx, dword [esp + 0x34]
test ecx, ecx
jne 0x406d63
mov eax, dword [0x428438]
test eax, eax
je 0x406be1
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [0x42842c]
mov ebx, eax
sub ebx, ecx
cmp edx, 1
jle 0x406bea
test edx, edx
jne 0x406b45
test ebp, ebp
jne 0x406b45
test ebx, ebx
je 0x406ba2
test eax, eax
jne 0x406b4e
cmp ebp, 1
jle 0x406b8d
mov edx, dword [esp + 0x4c]
cmp eax, edx
je 0x406b81
mov esi, dword [esp + 0x24]
test esi, esi
je 0x406b63
cmp ebp, 1
jle 0x406b7a
test edx, edx
je 0x406b70
test ebp, ebp
jne 0x406b70
mov ebp, 1
add esp, 0x5c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, 0x51
jmp 0x406b70
cmp ebp, 1
jg 0x406b56
mov ebp, 0x52
jmp 0x406b70
mov ebp, dword [esp + 0x24]
test ebp, ebp
setne cl
movzx ebp, cl
dec ebp
and ebp, 0xffffffba
add ebp, 0x51
jmp 0x406b70
mov dword [esp + 4], 0x406130
mov edi, dword [0x438ce0]
mov dword [esp], 0x428cb8
mov dword [esp + 8], edi
call sub.msvcrt.dll_sprintf
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0x428cb8
mov dword [esp], 0x4283f0
call dword [0x439258]
mov eax, dword [esp + 0x48]
jmp 0x406b45
test ebp, ebp
je 0x406cda
mov ebx, dword [0x438ce0]
cmp ebp, 1
mov eax, 0x4067aa
mov dword [esp + 0xc], ebx
je 0x406c0b
mov eax, 0x4067b3
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4060f0
mov dword [esp], 0x428cb8
call sub.msvcrt.dll_sprintf
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0x428cb8
mov dword [esp], 0x4283f0
call dword [0x439258]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x406c9e
cmp dword [esp + 0x24], 1
mov eax, 0x4067b3
je 0x406c5d
mov eax, 0x4067b4
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x24]
mov dword [esp + 4], 0x406330
mov dword [esp], 0x428cb8
mov dword [esp + 8], edx
call sub.msvcrt.dll_sprintf
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x428cb8
mov dword [esp], 0x4283f0
call dword [0x439258]
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x406be1
cmp eax, 1
mov edx, 0x4067b3
je 0x406cb9
mov edx, 0x4067b4
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x406230
mov dword [esp], 0x428cb8
call sub.msvcrt.dll_sprintf
jmp 0x406bc0
test ebx, ebx
je 0x406d4f
mov edi, dword [0x428478]
test edi, edi
je 0x406cf2
mov esi, dword [esp + 0x24]
add esi, ecx
test esi, esi
je 0x406d2c
cmp ebx, 1
mov eax, 0x4067b3
je 0x406d01
mov eax, 0x4067b4
mov dword [esp + 0xc], ebx
mov ebx, dword [0x438ce0]
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x4062f0
mov dword [esp + 8], ebx
mov dword [esp], 0x428cb8
call sub.msvcrt.dll_sprintf
jmp 0x406c23
mov dword [esp + 4], 0x4062b0
mov ecx, dword [0x438ce0]
mov dword [esp + 8], ecx
mov dword [esp], 0x428cb8
call sub.msvcrt.dll_sprintf
jmp 0x406c23
mov dword [esp + 4], 0x406130
mov edx, dword [0x438ce0]
mov dword [esp + 8], edx
jmp 0x406d3e
mov dword [esp + 4], 0x4012f0
mov dword [esp], 0x428cb8
call sub.msvcrt.dll_sprintf
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x401
mov dword [esp + 4], 0x428cb8
mov dword [esp], 0x4283f0
call dword [0x439258]
mov dword [esp + 4], 0x401470
mov dword [esp], 0x428cb8
call sub.msvcrt.dll_sprintf
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x401
mov dword [esp + 4], 0x428cb8
mov dword [esp], 0x4283f0
call dword [0x439258]
test ebp, ebp
jne 0x406b11
mov ebp, 1
jmp 0x406b11
mov edx, dword [0x4284a0]
mov ebx, dword [edx + esi*4]
mov dword [esp + 4], 0x401430
mov dword [esp], 0x428cb8
mov dword [esp + 8], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x401
mov dword [esp + 4], 0x428cb8
mov dword [esp], 0x4283f0
call dword [0x439258]
mov eax, dword [0x428474]
jmp 0x406aec
mov ebx, dword [0x42849c]
mov ecx, dword [ebx + esi*4]
mov dword [esp + 4], 0x4013f0
mov dword [esp], 0x428cb8
mov dword [esp + 8], ecx
call sub.msvcrt.dll_sprintf
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0x428cb8
mov dword [esp], 0x4283f0
call dword [0x439258]
cmp ebp, 1
jle 0x406e7c
mov eax, dword [0x428470]
jmp 0x406ab1
mov ebp, 0xb
jmp 0x406e72
shl eax, 2
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x20], eax
test eax, eax
je 0x406f7d
mov edx, dword [esp + 0x54]
cmp edx, 1
mov ecx, edx
je 0x406f6e
xor esi, esi
cmp esi, edx
jae 0x406ec9
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x20]
mov dword [ebx + esi*4], edx
mov edi, dword [esp + 0x58]
inc esi
cmp esi, ecx
mov edx, dword [edi]
mov dword [esp + 0x58], edx
jb 0x406eaf
mov dword [esp + 0xc], 0x409c20
mov esi, dword [esp + 0x20]
mov dword [esp + 8], 4
mov dword [esp + 4], ecx
mov dword [esp], esi
call fcn.0041dc10
mov edx, dword [esp + 0x54]
xor esi, esi
cmp esi, edx
jb 0x406f04
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x406a82
mov ecx, dword [esp + 0x20]
mov edi, dword [ecx + esi*4]
mov dword [esp], edi
call fcn.00418540
test eax, eax
mov ebx, eax
jne 0x406f2a
mov dword [esp], edi
inc esi
call sub.msvcrt.dll_free
cmp esi, dword [esp + 0x54]
jb 0x406f04
jmp 0x406ef3
mov edx, dword [edi + 4]
mov dword [esp + 4], 0x406030
mov dword [esp], 0x428cb8
mov dword [esp + 8], edx
call sub.msvcrt.dll_sprintf
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x201
mov dword [esp + 4], 0x428cb8
mov dword [esp], 0x4283f0
call dword [0x439258]
test ebp, ebp
jne 0x406f19
mov ebp, ebx
jmp 0x406f19
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x20]
mov dword [ebx], ecx
jmp 0x406eed
mov dword [esp + 4], 0x405ff0
mov dword [esp], 0x428cb8
call sub.msvcrt.dll_sprintf
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x401
mov dword [esp + 4], 0x428cb8
mov dword [esp], 0x4283f0
call dword [0x439258]
mov edx, dword [esp + 0x58]
test edx, edx
je 0x406a82
mov eax, dword [edx]
mov dword [esp], edx
mov dword [esp + 0x58], eax
call sub.msvcrt.dll_free
mov edx, dword [esp + 0x58]
test edx, edx
jne 0x406fbe
jmp 0x406a82
mov dword [esp + 0x38], 0
jmp 0x406a76
call fcn.004072c0
test eax, eax
je 0x407000
inc edi
jmp 0x406990
inc dword [esp + 0x24]
jmp 0x406990
mov ecx, dword [0x428408]
mov edx, dword [0x4284a0]
mov dword [esp + 8], ecx
mov ecx, dword [edx + esi*4]
mov dword [esp], 0x438df8
mov dword [esp + 4], ecx
call fcn.0040f350
test eax, eax
jne 0x407045
inc esi
cmp esi, dword [0x428474]
jb 0x407010
jmp 0x406986
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x406990
mov eax, dword [esp + 0x2c]
mov dword [eax + esi*4], 1
jmp 0x406990
mov edx, dword [0x428408]
mov ecx, dword [0x42849c]
mov dword [esp + 8], edx
mov edx, dword [ecx + esi*4]
mov dword [esp], 0x438df8
mov dword [esp + 4], edx
call fcn.0040f350
test eax, eax
jne 0x407096
inc esi
cmp esi, dword [0x428470]
jb 0x407061
jmp 0x406974
mov ecx, dword [esp + 0x30]
mov ebx, 1
test ecx, ecx
je 0x406974
mov edx, dword [esp + 0x30]
mov dword [edx + esi*4], 1
jmp 0x406974
mov dword [esp + 4], 0x430cb8
mov dword [esp], 0x438df8
call fcn.00409b40
mov dword [esp + 8], eax
mov dword [esp + 4], 0x405e39
mov dword [esp], 0x428cb8
call sub.msvcrt.dll_sprintf
mov dword [esp + 0xc], 0x421
mov dword [esp + 8], eax
mov dword [esp + 4], 0x428cb8
mov dword [esp], 0x4283f0
call dword [0x439258]
mov dword [esp + 0x38], 1
jmp 0x40699d
mov dword [esp + 4], 0x430cb8
mov dword [esp], 0x438df8
call fcn.00409b40
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x4067b6
mov dword [esp + 4], 0x405d50
mov dword [esp], 0x428cb8
call sub.msvcrt.dll_sprintf
mov dword [esp + 0xc], 0x401
jmp 0x4070eb
mov dword [esp + 4], 0x430cb8
mov dword [esp], 0x438df8
call fcn.00409b40
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x4067b6
mov dword [esp + 4], 0x405c30
jmp 0x407139
mov ebp, eax
jmp 0x407104
mov eax, dword [esp + 0x28]
cmp word [0x438d4a], ax
je 0x4071f8
mov dword [esp + 4], 0x401350
mov ebx, dword [esp + 0x3c]
mov dword [esp], 0x428cb8
shl ebx, 6
lea ebp, [ebx + edi + 1]
mov dword [esp + 8], ebp
mov ebp, 3
call sub.msvcrt.dll_sprintf
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x401
mov dword [esp + 4], 0x428cb8
mov dword [esp], 0x4283f0
call dword [0x439258]
mov dword [esp + 4], 0x401470
mov dword [esp], 0x428cb8
call sub.msvcrt.dll_sprintf
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x401
jmp 0x4070ef
mov dword [esp + 8], 4
mov dword [esp + 4], 0x427058
mov dword [esp], 0x4284a4
call sub.msvcrt.dll_strncmp
test eax, eax
setne cl
movzx edx, cl
mov dword [esp + 0x34], edx
jmp 0x407104
mov ebp, 0x33
jmp 0x407104
shl eax, 2
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x2c], eax
test eax, eax
je 0x406847
xor esi, esi
cmp esi, dword [0x428474]
jae 0x406847
mov ebx, dword [esp + 0x2c]
mov dword [ebx + esi*4], 0
inc esi
cmp esi, dword [0x428474]
jb 0x407254
jmp 0x406847
shl eax, 2
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x30], eax
test eax, eax
je 0x40683a
xor esi, esi
cmp ebp, dword [0x428470]
jae 0x40683a
mov ecx, dword [esp + 0x30]
mov dword [ecx + esi*4], 0
inc esi
cmp esi, dword [0x428470]
jb 0x407292
jmp 0x40683a