Function at 0x4040e0
Capabilities:
Enumerate pe sections
Read file on windows

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x404110
test dword [0x87ed4c], 0xffffffff
jne 0x4045b0
call fcn.007663a0
jmp fcn.004040e0
push edi
push esi
push ebp
push ebx
push esi
mov ebp, edx
mov edi, ebp
mov dword [esp], eax
mov esi, 0x78d3a4
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x404141
test dl, dl
je 0x40413d
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x404141
add edi, 2
add esi, 2
test dl, dl
jne 0x404121
xor eax, eax
jmp 0x404146
sbb eax, eax
or eax, 1
test eax, eax
je 0x40421a
mov edi, ebp
mov esi, 0x78d3a8
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x404175
test dl, dl
je 0x404171
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x404175
add edi, 2
add esi, 2
test dl, dl
jne 0x404155
xor eax, eax
jmp 0x40417a
sbb eax, eax
or eax, 1
test eax, eax
je 0x40421f
mov edi, ebp
mov esi, 0x78d3ac
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x4041a9
test dl, dl
je 0x4041a5
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x4041a9
add edi, 2
add esi, 2
test dl, dl
jne 0x404189
xor eax, eax
jmp 0x4041ae
sbb eax, eax
or eax, 1
test eax, eax
je 0x40421f
mov edi, ebp
mov esi, 0x78d3b0
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x4041d9
test dl, dl
je 0x4041d5
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x4041d9
add edi, 2
add esi, 2
test dl, dl
jne 0x4041b9
xor eax, eax
jmp 0x4041de
sbb eax, eax
or eax, 1
test eax, eax
je 0x40421f
mov edi, ebp
mov esi, 0x78d3b4
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x404209
test dl, dl
je 0x404205
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x404209
add edi, 2
add esi, 2
test dl, dl
jne 0x4041e9
xor eax, eax
jmp 0x40420e
sbb eax, eax
or eax, 1
test eax, eax
je 0x40421f
xor eax, eax
pop ecx
pop ebx
pop ebp
pop esi
pop edi
ret
mov ebp, 0x78d3ac
mov edi, ebp
mov esi, 0x78d3a8
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x404246
test dl, dl
je 0x404242
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x404246
add edi, 2
add esi, 2
test dl, dl
jne 0x404226
xor eax, eax
jmp 0x40424b
sbb eax, eax
or eax, 1
mov edx, dword [esp]
test eax, eax
mov ecx, 0x78d3b0
cmove ebp, ecx
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40427c
mov eax, edx
add edx, ecx
call fcn.007666f0
add eax, 5
push eax
call fcn.0074334f
pop ecx
mov ebx, eax
mov edi, dword [esp]
mov esi, ebx
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x40428d
mov edx, ebx
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x4042bd
mov eax, edx
add edx, ecx
call fcn.007666f0
mov edx, eax
dec edx
je 0x4042d8
movsx ecx, byte [edx + ebx]
cmp ecx, 0x2e
je 0x4042d8
cmp ecx, 0x2f
je 0x4042d8
cmp ecx, 0x5c
je 0x4042d8
dec edx
jne 0x4042c2
cmp byte [edx + ebx], 0x2e
jne 0x404308
mov byte [edx + ebx], 0
mov edx, ebx
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x404308
mov eax, edx
add edx, ecx
call fcn.007666f0
add eax, 5
push eax
call fcn.0074334f
mov edi, eax
push ebx
push str._s.dbf
push edi
call fcn.00743412
push 0x3c
push 1
call fcn.007435ab
mov esi, eax
push ebp
push edi
call fcn.007436ae
add esp, 0x20
mov dword [esi], eax
test eax, eax
je 0x404591
push ebx
call fcn.00743035
push edi
call fcn.00743035
add esp, 8
cmp dword [esi], 0
je 0x404582
xor eax, eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x28], 0xffffffff
mov dword [esi + 0x2c], eax
push 0x1f4
call fcn.0074334f
mov edi, eax
push dword [esi]
push 1
push 0x20
push edi
call fcn.0074301a
add esp, 0x14
cmp eax, 1
je 0x4043a3
push dword [esi]
call fcn.00742b21
push edi
call fcn.00743035
push esi
call fcn.00743035
add esp, 0xc
xor eax, eax
pop ecx
pop ebx
pop ebp
pop esi
pop edi
ret
movzx ebp, byte [edi + 4]
movzx ebx, byte [edi + 5]
movzx ecx, byte [edi + 6]
movzx edx, byte [edi + 7]
shl ebx, 8
add ebp, ebx
shl ecx, 0x10
shl edx, 0x18
add ecx, edx
add ebp, ecx
mov dword [esi + 4], ebp
movzx ecx, byte [edi + 8]
movzx ebp, byte [edi + 9]
shl ebp, 8
lea ebx, [ebp + ecx]
mov dword [esi + 0xc], ebx
movzx eax, byte [edi + 0xa]
movzx edx, byte [edi + 0xb]
shl edx, 8
add eax, edx
mov dword [esi + 8], eax
lea edx, [ecx + ebp - 0x20]
mov dword [esp], edx
sar edx, 4
shr edx, 0x1b
lea ebp, [edx + ebx - 0x20]
sar ebp, 5
mov dword [esi + 0x10], ebp
push eax
call fcn.0074334f
pop ecx
mov dword [esi + 0x30], eax
test edi, edi
je 0x404574
push ebx
push edi
call fcn.007436c1
add esp, 8
mov ebx, eax
mov dword [esi + 0x24], ebx
push 0
push 0x20
push dword [esi]
call fcn.0074327b
push dword [esi]
push 1
push dword [esp + 0x14]
push ebx
call fcn.0074301a
add esp, 0x1c
cmp eax, 1
jne 0x404525
lea edi, [ebp*4]
push edi
call fcn.0074334f
mov dword [esi + 0x14], eax
push edi
call fcn.0074334f
mov dword [esi + 0x18], eax
push edi
call fcn.0074334f
mov dword [esi + 0x1c], eax
push ebp
call fcn.0074334f
add esp, 0x10
mov dword [esi + 0x20], eax
test ebp, ebp
jle 0x40451d
movzx eax, byte [ebx + 0xb]
cmp eax, 0x4e
je 0x40455d
cmp eax, 0x46
je 0x40455d
movzx edx, byte [ebx + 0x10]
movzx eax, byte [ebx + 0x11]
shl eax, 8
add edx, eax
mov ecx, dword [esi + 0x18]
mov dword [ecx], edx
mov edi, dword [esi + 0x1c]
mov dword [edi], 0
movzx eax, byte [ebx + 0xb]
cmp ebp, 2
mov edx, dword [esi + 0x20]
mov byte [edx], al
lea edx, [ebp - 1]
mov ecx, dword [esi + 0x14]
mov dword [ecx], 1
jl 0x40451d
xor ebp, ebp
mov ecx, ebp
shl ecx, 5
movzx eax, byte [ebx + ecx + 0x2b]
cmp eax, 0x4e
je 0x404543
cmp eax, 0x46
je 0x404543
movzx eax, byte [ebx + ecx + 0x30]
movzx edi, byte [ebx + ecx + 0x31]
shl edi, 8
add eax, edi
mov edi, dword [esi + 0x18]
mov dword [edi + ebp*4 + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [eax + ebp*4 + 4], 0
movzx eax, byte [ebx + ecx + 0x2b]
mov ecx, dword [esi + 0x20]
mov byte [ecx + ebp + 1], al
mov ecx, dword [esi + 0x14]
mov edi, dword [esi + 0x18]
mov eax, dword [ecx + ebp*4]
add eax, dword [edi + ebp*4]
mov dword [ecx + ebp*4 + 4], eax
inc ebp
cmp ebp, edx
jb 0x4044c7
mov eax, esi
pop ecx
pop ebx
pop ebp
pop esi
pop edi
ret
push dword [esi]
call fcn.00742b21
push ebx
call fcn.00743035
push esi
call fcn.00743035
add esp, 0xc
xor eax, eax
pop ecx
pop ebx
pop ebp
pop esi
pop edi
ret
movzx eax, byte [ebx + ecx + 0x30]
mov edi, dword [esi + 0x18]
mov dword [edi + ebp*4 + 4], eax
movzx eax, byte [ebx + ecx + 0x31]
mov edi, dword [esi + 0x1c]
mov dword [edi + ebp*4 + 4], eax
jmp 0x4044fc
movzx eax, byte [ebx + 0x10]
mov edx, dword [esi + 0x18]
mov dword [edx], eax
movzx ecx, byte [ebx + 0x11]
mov edi, dword [esi + 0x1c]
mov dword [edi], ecx
jmp 0x4044ab
push ebx
call fcn.0074334f
pop ecx
mov ebx, eax
jmp 0x40441c
push esi
call fcn.00743035
pop ecx
xor eax, eax
pop ecx
pop ebx
pop ebp
pop esi
pop edi
ret
push ebx
push str._s.DBF
push edi
call fcn.00743412
push ebp
push edi
call fcn.007436ae
add esp, 0x14
mov dword [esi], eax
jmp 0x40433e
push edi
push esi
push ebp
push ebx
push esi
mov ebp, edx
mov ecx, eax
mov edi, ebp
mov esi, 0x78d3a4
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x4045e0
test dl, dl
je 0x4045dc
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x4045e0
add edi, 2
add esi, 2
test dl, dl
jne 0x4045c0
xor eax, eax
jmp 0x4045e5
sbb eax, eax
or eax, 1
test eax, eax
je 0x4046b9
mov edi, ebp
mov esi, 0x78d3a8
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x404614
test dl, dl
je 0x404610
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x404614
add edi, 2
add esi, 2
test dl, dl
jne 0x4045f4
xor eax, eax
jmp 0x404619
sbb eax, eax
or eax, 1
test eax, eax
je 0x4046be
mov edi, ebp
mov esi, 0x78d3ac
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x404648
test dl, dl
je 0x404644
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x404648
add edi, 2
add esi, 2
test dl, dl
jne 0x404628
xor eax, eax
jmp 0x40464d
sbb eax, eax
or eax, 1
test eax, eax
je 0x4046be
mov edi, ebp
mov esi, 0x78d3b0
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x404678
test dl, dl
je 0x404674
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x404678
add edi, 2
add esi, 2
test dl, dl
jne 0x404658
xor eax, eax
jmp 0x40467d
sbb eax, eax
or eax, 1
test eax, eax
je 0x4046be
mov edi, ebp
mov esi, 0x78d3b4
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x4046a8
test dl, dl
je 0x4046a4
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x4046a8
add edi, 2
add esi, 2
test dl, dl
jne 0x404688
xor eax, eax
jmp 0x4046ad
sbb eax, eax
or eax, 1
test eax, eax
je 0x4046be
xor eax, eax
pop ecx
pop ebx
pop ebp
pop esi
pop edi
ret
mov ebp, 0x78d3ac
mov edi, ebp
mov esi, 0x78d3a8
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x4046e5
test dl, dl
je 0x4046e1
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x4046e5
add edi, 2
add esi, 2
test dl, dl
jne 0x4046c5
xor eax, eax
jmp 0x4046ea
sbb eax, eax
or eax, 1
test eax, eax
mov edx, 0x78d3b0
jne 0x4046f5
mov ebp, edx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x40470c
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x4046f7
dec eax
add eax, 5
push eax
mov dword [esp + 4], ecx
call fcn.0074334f
mov ecx, dword [esp + 4]
add esp, 4
mov ebx, eax
mov esi, ebx
mov edi, ecx
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x404726
mov ecx, ebx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x404749
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x404734
dec eax
mov edx, eax
dec edx
je 0x404764
movsx ecx, byte [edx + ebx]
cmp ecx, 0x2e
je 0x404764
cmp ecx, 0x2f
je 0x404764
cmp ecx, 0x5c
je 0x404764
dec edx
jne 0x40474e
cmp byte [edx + ebx], 0x2e
jne 0x404787
mov byte [edx + ebx], 0
mov ecx, ebx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x404787
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x404772
dec eax
add eax, 5
push eax
call fcn.0074334f
mov edi, eax
push ebx
push str._s.dbf
push edi
call fcn.00743412
push 0x3c
push 1
call fcn.007435ab
mov esi, eax
push ebp
push edi
call fcn.007436ae
add esp, 0x20
mov dword [esi], eax
test eax, eax
je 0x404a0f
push ebx
call fcn.00743035
push edi
call fcn.00743035
add esp, 8
cmp dword [esi], 0
je 0x404a00
xor eax, eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x28], 0xffffffff
mov dword [esi + 0x2c], eax
push 0x1f4
call fcn.0074334f
mov edi, eax
push dword [esi]
push 1
push 0x20
push edi
call fcn.0074301a
add esp, 0x14
cmp eax, 1
je 0x404822
push dword [esi]
call fcn.00742b21
push edi
call fcn.00743035
push esi
call fcn.00743035
add esp, 0xc
xor eax, eax
pop ecx
pop ebx
pop ebp
pop esi
pop edi
ret
movzx ebp, byte [edi + 4]
movzx ebx, byte [edi + 5]
shl ebx, 8
add ebp, ebx
movzx ecx, byte [edi + 6]
shl ecx, 0x10
movzx edx, byte [edi + 7]
shl edx, 0x18
add ecx, edx
add ebp, ecx
mov dword [esi + 4], ebp
movzx ecx, byte [edi + 8]
movzx ebp, byte [edi + 9]
shl ebp, 8
lea ebx, [ecx + ebp]
mov dword [esi + 0xc], ebx
movzx eax, byte [edi + 0xa]
movzx edx, byte [edi + 0xb]
shl edx, 8
add eax, edx
mov dword [esi + 8], eax
lea edx, [ecx + ebp - 0x20]
mov dword [esp], edx
sar edx, 4
shr edx, 0x1b
lea ebp, [edx + ebx - 0x20]
sar ebp, 5
mov dword [esi + 0x10], ebp
push eax
call fcn.0074334f
pop ecx
mov dword [esi + 0x30], eax
test edi, edi
je 0x4049f2
push ebx
push edi
call fcn.007436c1
add esp, 8
mov ebx, eax
mov dword [esi + 0x24], ebx
push 0
push 0x20
push dword [esi]
call fcn.0074327b
push dword [esi]
push 1
push dword [esp + 0x14]
push ebx
call fcn.0074301a
add esp, 0x1c
cmp eax, 1
jne 0x4049a3
lea edi, [ebp*4]
push edi
call fcn.0074334f
mov dword [esi + 0x14], eax
push edi
call fcn.0074334f
mov dword [esi + 0x18], eax
push edi
call fcn.0074334f
mov dword [esi + 0x1c], eax
push ebp
call fcn.0074334f
add esp, 0x10
mov dword [esi + 0x20], eax
test ebp, ebp
jle 0x40499b
movzx eax, byte [ebx + 0xb]
cmp eax, 0x4e
je 0x4049db
cmp eax, 0x46
je 0x4049db
movzx edx, byte [ebx + 0x10]
movzx eax, byte [ebx + 0x11]
shl eax, 8
add edx, eax
mov ecx, dword [esi + 0x18]
mov dword [ecx], edx
mov edi, dword [esi + 0x1c]
mov dword [edi], 0
movzx eax, byte [ebx + 0xb]
mov edx, dword [esi + 0x20]
mov byte [edx], al
mov ecx, dword [esi + 0x14]
mov dword [ecx], 1
lea edx, [ebp - 1]
cmp ebp, 2
jl 0x40499b
xor ebp, ebp
mov ecx, ebp
shl ecx, 5
movzx eax, byte [ebx + ecx + 0x2b]
cmp eax, 0x4e
je 0x4049c1
cmp eax, 0x46
je 0x4049c1
movzx eax, byte [ebx + ecx + 0x30]
movzx edi, byte [ebx + ecx + 0x31]
shl edi, 8
add eax, edi
mov edi, dword [esi + 0x18]
mov dword [edi + ebp*4 + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [eax + ebp*4 + 4], 0
movzx eax, byte [ebx + ecx + 0x2b]
mov ecx, dword [esi + 0x20]
mov byte [ecx + ebp + 1], al
mov ecx, dword [esi + 0x14]
mov edi, dword [esi + 0x18]
mov eax, dword [ecx + ebp*4]
add eax, dword [edi + ebp*4]
mov dword [ecx + ebp*4 + 4], eax
inc ebp
cmp ebp, edx
jb 0x404945
mov eax, esi
pop ecx
pop ebx
pop ebp
pop esi
pop edi
ret
push dword [esi]
call fcn.00742b21
push ebx
call fcn.00743035
push esi
call fcn.00743035
add esp, 0xc
xor eax, eax
pop ecx
pop ebx
pop ebp
pop esi
pop edi
ret
movzx eax, byte [ebx + ecx + 0x30]
mov edi, dword [esi + 0x18]
mov dword [edi + ebp*4 + 4], eax
movzx eax, byte [ebx + ecx + 0x31]
mov edi, dword [esi + 0x1c]
mov dword [edi + ebp*4 + 4], eax
jmp 0x40497a
movzx eax, byte [ebx + 0x10]
mov edx, dword [esi + 0x18]
mov dword [edx], eax
movzx ecx, byte [ebx + 0x11]
mov edi, dword [esi + 0x1c]
mov dword [edi], ecx
jmp 0x404929
push ebx
call fcn.0074334f
pop ecx
mov ebx, eax
jmp 0x40489a
push esi
call fcn.00743035
pop ecx
xor eax, eax
pop ecx
pop ebx
pop ebp
pop esi
pop edi
ret
push ebx
push str._s.DBF
push edi
call fcn.00743412
push ebp
push edi
call fcn.007436ae
add esp, 0x14
mov dword [esi], eax
jmp 0x4047bd