Function at 0x405c50
Capabilities:
Read file on windows

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x44bf16
push eax
mov eax, 0x39a8
mov dword fs:[0], esp
call fcn.0041aa50
push ebx
push ebp
push edi
mov edi, dword [esp + 0x39c4]
mov ebx, ecx
push 0x8002
push edi
mov dword [esp + 0x2c], ebx
call fcn.0041a764
mov ebp, eax
add esp, 8
cmp ebp, 0xffffffff
je 0x406271
push esi
mov ecx, ebx
call fcn.00405b20
xor esi, esi
cmp eax, esi
je 0x405cae
push esi
mov ecx, eax
call fcn.0040af60
push esi
mov ecx, ebx
call fcn.00405b90
push esi
push esi
push ebp
call fcn.0041a68c
mov eax, dword [0x461510]
mov dword [esp + 0x30], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0xf0], eax
push 0x2e
push edi
mov dword [esp + 0x39d4], esi
call fcn.0041a5d0
add esp, 0x14
cmp eax, esi
je 0x405ced
inc eax
mov byte [esp + 0x13], 0
mov esi, str.GWIlog
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x405d1b
test cl, cl
je 0x405d17
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x405d1b
add eax, 2
add esi, 2
test cl, cl
jne 0x405cf7
xor eax, eax
jmp 0x405d20
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x405d29
mov byte [esp + 0x13], 1
lea eax, [esp + 0x4c]
mov ecx, ebx
push eax
call fcn.004050f0
lea ecx, [esp + 0x20]
push 4
push ecx
push ebp
call fcn.0041a37e
add esp, 0xc
test eax, eax
jle 0x406250
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x4c]
push edx
push 0x4612d0
push eax
call fcn.00419a8a
lea ecx, [esp + 0x63]
push 0xc
push ecx
push ebp
call fcn.0041a37e
add esp, 0x18
test eax, eax
jle 0x406250
lea edx, [esp + 0x38]
push 0x10
push edx
push ebp
call fcn.0041a37e
mov eax, dword [esp + 0x52]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4e]
and eax, 0xffff
push eax
mov eax, dword [esp + 0x50]
and ecx, 0xffff
and edx, 0xffff
push ecx
mov ecx, dword [esp + 0x52]
and eax, 0xffff
push edx
mov edx, dword [esp + 0x52]
push eax
mov eax, dword [esp + 0x54]
and ecx, 0xffff
and edx, 0xffff
push ecx
and eax, 0xffff
push edx
push eax
lea ecx, [esp + 0x8c]
push str._04d__02d__02d__02d:_02d:_02d._03d
push ecx
call fcn.00419a8a
lea edx, [esp + 0xac]
push 1
push edx
push ebp
call fcn.0041a37e
lea eax, [esp + 0xc3]
push 0x14
push eax
push ebp
call fcn.0041a37e
add esp, 0x48
lea ecx, [esp + 0x2c]
push 4
push ecx
push ebp
call fcn.0041a37e
mov edx, dword [esp + 0x38]
lea eax, [esp + 0xd4]
push edx
push 0x4612d0
push eax
call fcn.00419a8a
lea ecx, [esp + 0xec]
push 0xf
push ecx
push ebp
call fcn.0041a37e
lea edx, [esp + 0x3b]
push 1
push edx
push ebp
call fcn.0041a37e
mov al, byte [esp + 0x43]
add esp, 0x30
test al, al
je 0x405e78
lea eax, [esp + 0x24]
push 4
push eax
push ebp
call fcn.0041a37e
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0xd9]
push ecx
push 0x4612d0
push edx
call fcn.00419a8a
add esp, 0x18
lea eax, [esp + 0x34]
push 4
push eax
push ebp
call fcn.0041a37e
mov ecx, 0x700
xor eax, eax
lea edi, [esp + 0x1dc0]
lea edx, [esp + 0x1dc0]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x40]
push ecx
push edx
push ebp
stosb byte es:[edi], al
call fcn.0041a37e
mov ecx, 0x700
xor eax, eax
lea edi, [esp + 0x1c8]
add esp, 0x18
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov al, byte [esp + 0x17]
cmp al, 0x41
jne 0x405efc
mov ecx, 0x700
xor eax, eax
lea edi, [esp + 0x1b0]
lea edx, [esp + 0x1db4]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
lea eax, [esp + 0x30]
lea ecx, [esp + 0x1b0]
push eax
push ecx
push edx
mov ecx, ebx
call fcn.00406bf0
lea eax, [esp + 0x1b0]
push eax
jmp 0x405f3f
cmp al, 0x44
jne 0x405f37
mov ecx, 0x700
xor eax, eax
lea edi, [esp + 0x1b0]
lea edx, [esp + 0x1b0]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x30]
stosb byte es:[edi], al
push ecx
lea eax, [esp + 0x1db8]
push edx
push eax
mov ecx, ebx
call fcn.00406bf0
lea ecx, [esp + 0x1b0]
push ecx
jmp 0x405f3f
lea edx, [esp + 0x1db4]
push edx
lea ecx, [esp + 0xe8]
call fcn.0042f15f
mov al, byte [esp + 0x7c]
cmp al, 0x44
jne 0x405f60
mov eax, dword [0x4658b0]
push eax
push 0x450018
jmp 0x405fa1
cmp al, 0x49
jne 0x405f77
mov edx, dword [0x4658ac]
lea eax, [esp + 0x7c]
push edx
push 0x450020
push eax
jmp 0x405fa9
cmp al, 0x57
jne 0x405f8e
mov ecx, dword [0x4658b4]
lea edx, [esp + 0x7c]
push ecx
push 0x450010
push edx
jmp 0x405fa9
cmp al, 0x45
jne 0x405d29
mov eax, dword [0x4658a8]
push eax
push 0x450028
lea ecx, [esp + 0x84]
push ecx
call fcn.0041a280
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10c], ecx
mov ecx, dword [esp + 0x63]
mov dword [esp + 0x104], edx
mov dx, word [esp + 0x60]
mov dword [esp + 0x108], eax
mov al, byte [esp + 0x62]
mov dword [esp + 0x113], ecx
mov cl, byte [esp + 0x6f]
mov word [esp + 0x110], dx
mov edx, dword [esp + 0x67]
mov byte [esp + 0x112], al
mov eax, dword [esp + 0x6b]
mov byte [esp + 0x11f], cl
mov ecx, 6
lea esi, [esp + 0x70]
lea edi, [esp + 0x120]
mov dword [esp + 0x117], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x11b], eax
mov eax, dword [esp + 0x8c]
add esp, 0xc
rep movsd dword es:[edi], dword [esi]
mov cx, word [esp + 0x84]
mov dword [esp + 0x12c], edx
mov dl, byte [esp + 0x86]
mov word [esp + 0x134], cx
mov ecx, 0x10
lea esi, [esp + 0x87]
lea edi, [esp + 0x137]
mov dword [esp + 0x130], eax
mov byte [esp + 0x136], dl
mov eax, dword [esp + 0xc8]
rep movsd dword es:[edi], dword [esi]
mov cl, byte [esp + 0xcc]
mov edx, dword [esp + 0xcd]
movsb byte es:[edi], byte [esi]
mov dword [esp + 0x178], eax
mov ax, word [esp + 0xd1]
mov byte [esp + 0x17c], cl
mov cl, byte [esp + 0xd3]
mov word [esp + 0x181], ax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x17d], edx
mov edx, dword [esp + 0xd4]
mov byte [esp + 0x183], cl
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x188], eax
mov dword [esp + 0x184], edx
mov edx, dword [esp + 0xe0]
lea eax, [esp + 0xe4]
mov dword [esp + 0x18c], ecx
push eax
lea ecx, [esp + 0x198]
mov dword [esp + 0x194], edx
call fcn.0042ed4b
mov eax, dword [ebx + 0x19c]
mov ecx, dword [0x4658d0]
add ebx, 0x198
mov edx, dword [esp + 0xf8]
mov esi, dword [eax + 4]
mov edi, eax
cmp esi, ecx
mov byte [esp + 0x39c0], 1
mov al, 1
je 0x406151
mov eax, dword [esi + 0xc]
mov edi, esi
cmp edx, eax
setl al
test al, al
je 0x40614a
mov esi, dword [esi]
jmp 0x40614d
mov esi, dword [esi + 8]
cmp esi, ecx
jne 0x406138
mov cl, byte [ebx + 8]
test cl, cl
je 0x406176
lea ecx, [esp + 0xf8]
lea edx, [esp + 0xec]
push ecx
push edi
push esi
push edx
mov ecx, ebx
call fcn.004095b0
jmp 0x40622a
test al, al
mov dword [esp + 0x18], edi
je 0x4061d9
lea eax, [esp + 0xe8]
mov ecx, ebx
push eax
call fcn.00407190
mov ecx, dword [esp + 0x18]
mov edx, dword [eax]
cmp ecx, edx
sete al
test al, al
je 0x4061c9
lea edx, [esp + 0x16]
lea eax, [esp + 0xf8]
push edx
push eax
push edi
lea ecx, [esp + 0xfc]
push esi
push ecx
mov ecx, ebx
mov byte [esp + 0x2a], 1
call fcn.004095b0
push eax
lea ecx, [esp + 0x1a0]
jmp 0x406225
lea ecx, [esp + 0x18]
call fcn.00409d30
mov edx, dword [esp + 0xf8]
mov eax, dword [esp + 0x18]
cmp dword [eax + 0xc], edx
jge 0x40620f
lea ecx, [esp + 0x15]
lea edx, [esp + 0xf8]
push ecx
push edx
push edi
lea eax, [esp + 0x100]
push esi
push eax
mov ecx, ebx
mov byte [esp + 0x29], 1
call fcn.004095b0
push eax
lea ecx, [esp + 0x1a8]
jmp 0x406225
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
mov byte [esp + 0x18], 0
push edx
lea ecx, [esp + 0x1b0]
call fcn.00407cb0
lea ecx, [esp + 0x194]
mov byte [esp + 0x39c0], 0
call fcn.0042efd6
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x28]
inc eax
mov dword [esp + 0x1c], eax
jmp 0x405d29
push ebp
call fcn.0041a19d
add esp, 4
lea ecx, [esp + 0xe4]
mov dword [esp + 0x39c0], 0xffffffff
call fcn.0042efd6
pop esi
mov ecx, dword [esp + 0x39b4]
pop edi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x39b4
ret 4