Function at 0x4070e0
Capabilities:
Read file on windows

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov ecx, dword [0x44d834]
lea esi, [esp + 0x3c]
mov eax, dword [esp + 0x70]
xor ecx, esp
mov dword [esp + 0x54], ecx
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x14]
mov ecx, esi
push dword [eax]
call fcn.00405cb0
mov dword [esp + 0x34], esi
mov ecx, 0x2ad9d606
mov edx, 0x5973397f
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x50], 0xf
mov dword [esp + 0x38], eax
mov eax, 0xda316b2c
cmova eax, ecx
nop
cmp edx, 0xda316b2c
je 0x40716b
cmp edx, 0x2ad9d606
je 0x407158
cmp edx, 0x5973397f
jne 0x407130
mov ecx, dword [esp + 0x38]
mov edx, eax
cmp edx, 0xda316b2c
jne 0x407138
jmp 0x40716b
mov ecx, dword [esp + 0x34]
mov edx, 0xda316b2c
mov ecx, dword [ecx]
cmp edx, 0xda316b2c
jne 0x407138
push 0x447b58
push ecx
call fcn.00429ed6
add esp, 8
mov dword [esp + 0x18], eax
mov eax, 0x3fe5ddb1
cmp eax, 0xda5c015b
jg 0x407197
jmp 0x4071f0
mov eax, 0x2e220447
cmp eax, 0xda5c015b
jle 0x4071f0
cmp eax, 0x3fe5ddb0
jg 0x407240
cmp eax, 0xda5c015c
je 0x4072b6
cmp eax, 0x2e220447
je 0x4072e5
cmp eax, 0x364c824f
jne 0x407190
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, 0x8b29f69c
add ebx, 0x28
inc ebp
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
cmp eax, 0xda5c015b
jg 0x407197
nop word [eax + eax]
cmp eax, 0xba68296d
jg 0x407290
cmp eax, 0x803b4568
je 0x407412
cmp eax, 0x8b29f69c
je 0x40757c
cmp eax, 0xab0a9f0f
jne 0x407190
mov eax, 0xba68296e
mov dword [esp], 0xffffffff
cmp eax, 0xda5c015b
jg 0x407197
jmp 0x4071f0
cmp eax, 0x61954cca
je 0x4075bb
cmp eax, 0x5f53dd9a
je 0x4075e7
cmp eax, 0x3fe5ddb1
jne 0x407190
cmp dword [esp + 0x18], 0
mov eax, 0xd0fb7ddf
mov ecx, 0x803b4568
cmove eax, ecx
cmp eax, 0xda5c015b
jg 0x407197
jmp 0x4071f0
cmp eax, 0xd0fb7ddf
je 0x407627
cmp eax, 0xd7468688
je 0x40718b
cmp eax, 0xba68296e
jne 0x407190
jmp 0x407733
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x14]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x10]
mov dword [esp + 0xc], eax
mov eax, 0x364c824f
cmp eax, 0xda5c015b
jg 0x407197
jmp 0x4071f0
mov eax, dword [0x44e540]
lea edx, [eax - 1]
imul edx, eax
mov ecx, edx
mov eax, edx
not ecx
xor eax, 0x5664d0b
mov esi, ecx
and eax, edx
and ecx, 0xd5cfd8d9
and esi, 0x5664d0b
mov edi, esi
and edi, eax
xor eax, esi
or eax, edi
mov esi, eax
and eax, 0x5664d0a
not esi
and esi, 0xfa99b2f5
or eax, esi
mov esi, eax
and eax, 0xc692e26e
not esi
and esi, 0x396d1d91
or eax, esi
mov esi, eax
xor eax, 0x396d1d91
mov edi, eax
xor esi, 0xc482c048
or eax, edx
and edx, 0x2a302726
and edi, 0x2a302726
and esi, 0xd5cfd8d9
or ecx, edx
not eax
mov edx, dword [0x44e544]
or esi, edi
xor ecx, esi
mov esi, 0xd7468688
or eax, ecx
mov ecx, eax
and eax, 0xb03ac448
not ecx
and ecx, 0x4fc53bb7
or eax, ecx
xor eax, 0xb03ac448
sete cl
setne ah
cmp edx, 0xa
setl ch
cmp edx, 9
setg al
and ch, ah
mov edx, eax
and cl, al
xor al, ah
and dl, ah
or ch, cl
or al, dl
mov cl, ch
mov edx, eax
xor cl, 1
xor dl, 1
mov ah, dl
and ah, al
mov dh, ah
xor ah, dl
mov dl, ch
xor dh, 1
and dl, cl
or dh, al
xor dh, 1
or dh, ah
mov ah, dl
xor dl, ch
and ah, ch
or dl, ah
mov ah, dh
xor ah, 1
and ah, dl
xor dl, 1
and dl, dh
or dl, ah
mov ah, al
and ah, cl
xor cl, al
or cl, ah
mov eax, 0xab0a9f0f
mov ch, cl
xor ch, dl
test cl, cl
cmovne eax, esi
test dl, 1
not ch
mov edx, 0xab0a9f0f
cmove eax, esi
test ch, 1
cmovne eax, edx
cmp eax, 0xda5c015b
jg 0x407197
jmp 0x4071f0
mov eax, dword [0x44e540]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0x18bc4635
and eax, ecx
not ecx
and ecx, 0x18bc4635
mov edx, ecx
and edx, eax
xor eax, ecx
or eax, edx
mov ecx, eax
and eax, 0x18bc4635
not ecx
and ecx, 0xe743b9ca
or eax, ecx
mov ecx, eax
mov esi, eax
xor eax, 0xfffffffe
or ecx, 0xdd365a79
not esi
mov edi, ecx
mov edx, esi
and ecx, 0x7d3fef8c
and esi, 1
not edi
or edx, 0x22c9a586
or eax, esi
and edi, 0x2c00002
or edi, ecx
mov ecx, edx
and edx, 0x7d3fef8c
not ecx
and ecx, 0x80001071
or ecx, edx
xor ecx, edi
mov edi, 0x2e220447
mov edx, ecx
and ecx, 0x22c9a587
not edx
and edx, 0xdd365a78
or ecx, edx
mov edx, ecx
and ecx, 0x8d470b0e
not edx
mov esi, edx
or edx, eax
and esi, 0x72b8f4f1
not edx
or ecx, esi
mov esi, eax
and eax, 0x72b8f4f1
not esi
and esi, 0x8d470b0e
or esi, eax
xor esi, ecx
or edx, esi
mov esi, 0xd7468688
mov eax, edx
and edx, 0x357f674f
not eax
and eax, 0xca8098b0
or edx, eax
mov eax, edx
xor edx, 0x88001820
xor eax, 0x52e2609
and edx, 0xb8515966
and eax, 0x47aea699
or eax, edx
mov ecx, eax
xor eax, 0x88004826
xor ecx, 0x5848019
and eax, 0xca2a6ea6
and ecx, 0x35d59159
or ecx, eax
mov eax, dword [0x44e544]
xor ecx, 0x35d59159
sete cl
setne dl
cmp eax, 0xa
setl ch
cmp eax, 9
setg dh
and ch, dl
mov al, dh
and cl, dh
xor dh, dl
and al, dl
or ch, cl
or dh, al
mov cl, ch
mov al, dh
xor cl, 1
and ch, dh
not al
or dh, cl
and cl, al
mov dl, dh
mov eax, 0xd7468688
or cl, ch
xor dl, cl
test cl, cl
cmovne eax, edi
test dh, dh
cmovne eax, esi
test dl, 1
cmove eax, edi
cmp eax, 0xda5c015b
jg 0x407197
jmp 0x4071f0
mov eax, dword [esp + 8]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x30], ebx
mov edx, 0x5f53dd9a
mov dword [esp + 0x28], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
cmp ecx, eax
mov eax, 0x61954cca
cmovl eax, edx
cmp eax, 0xda5c015b
jg 0x407197
jmp 0x4071f0
push dword [esp + 0x28]
push dword [esp + 0x30]
call fcn.00406080
add esp, 8
mov eax, 0xba68296e
mov dword [esp], 0
cmp eax, 0xda5c015b
jg 0x407197
jmp 0x4071f0
push str..call
push dword [esp + 0x34]
call fcn.0042b5a0
add esp, 8
test eax, eax
mov eax, 0x364c824f
mov ecx, 0xda5c015c
cmove eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc], ecx
cmp eax, 0xda5c015b
jg 0x407197
jmp 0x4071f0
push 2
push 0
push dword [esp + 0x20]
call fcn.00428b44
add esp, 0xc
push dword [esp + 0x18]
call fcn.0042a59d
add esp, 4
mov ebx, eax
push dword [esp + 0x18]
call fcn.0042986e
add esp, 4
lea eax, [esp + 0x3c]
mov ecx, 0x2ad9d606
mov edx, 0x5973397f
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x50], 0xf
mov dword [esp + 0x38], eax
mov eax, 0xda316b2c
cmova eax, ecx
nop dword [eax + eax]
cmp edx, 0xda316b2c
je 0x4076bb
cmp edx, 0x2ad9d606
je 0x4076a8
cmp edx, 0x5973397f
jne 0x407680
mov ecx, dword [esp + 0x38]
mov edx, eax
cmp edx, 0xda316b2c
jne 0x407688
jmp 0x4076bb
mov ecx, dword [esp + 0x34]
mov edx, 0xda316b2c
mov ecx, dword [ecx]
cmp edx, 0xda316b2c
jne 0x407688
push 0x447b58
push ecx
call fcn.00429ed6
add esp, 8
mov ebp, eax
push ebx
call fcn.0042b0fc
add esp, 4
mov dword [esp + 0x1c], eax
push ebp
push ebx
push 1
push dword [esp + 0x28]
call fcn.0042a257
add esp, 0x10
push ebp
call fcn.0042986e
add esp, 4
mov eax, dword [esp + 0x1c]
xor ebp, ebp
mov eax, dword [eax + 0x3c]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
movzx edx, word [ecx + eax + 6]
lea ebx, [ecx + eax + 0xf8]
mov eax, 0x8b29f69c
mov dword [esp + 0x20], edx
cmp eax, 0xda5c015b
jg 0x407197
jmp 0x4071f0
lea eax, [esp + 0x3c]
mov esi, 0xdd0d2688
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov eax, 0x59b2124d
nop dword [eax]
cmp eax, 0xa1c48b1e
je 0x4077a1
cmp eax, 0xdd0d2688
je 0x40777e
cmp eax, 0x59b2124d
jne 0x407750
mov eax, dword [esp + 0x38]
cmp dword [eax + 0x14], 0xf
mov eax, 0xa1c48b1e
cmova eax, esi
cmp eax, 0xa1c48b1e
jne 0x407757
jmp 0x4077a1
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx + 0x14]
inc ecx
push ecx
push dword [eax]
call fcn.00407810
add esp, 8
mov eax, 0xa1c48b1e
cmp eax, 0xa1c48b1e
jne 0x407757
mov eax, dword [esp + 0x38]
mov dword [eax + 0x10], 0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x14], 0xf
mov eax, dword [esp + 0x38]
mov byte [eax], 0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x54]
xor ecx, esp
call fcn.0041d6b9
mov eax, dword [esp]
add esp, 0x58
pop esi
pop edi
pop ebx
pop ebp
ret