Function at 0x48b970
Capabilities:
Parse pe header
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x61c
mov eax, dword [0x534014]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
mov dword [ebp - 0x5c8], eax
push esi
xor esi, esi
mov dword [ebp - 0x5c4], esi
mov eax, dword [ebx + 0x808]
test eax, eax
jne 0x48b9d2
mov dword [ebx + 0x834], esi
mov eax, dword [ebx + 0x808]
test eax, eax
jne 0x48ba04
mov dword [ebx + 0x838], esi
mov eax, dword [ebx + 0x808]
push edi
test eax, eax
jne 0x48ba4c
mov dword [ebx + 0x82c], esi
jmp 0x48ba67
push 0xb
push dword [ebx + 0x804]
call eax
add esp, 8
mov dword [ebx + 0x834], eax
test eax, eax
je 0x48b9a8
pop esi
mov byte [ebx + 0xc94], 1
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00426f36
mov esp, ebp
pop ebp
ret 8
push 0xa
push dword [ebx + 0x804]
call eax
add esp, 8
mov dword [ebx + 0x838], eax
test eax, eax
je 0x48b9b8
mov ecx, ebx
call fcn.0048e380
test al, al
je 0x48b9b8
push dword [ebp - 0x5c8]
mov ecx, ebx
mov byte [ebx + 0xc78], 1
call fcn.0048e7e0
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00426f36
mov esp, ebp
pop ebp
ret 8
push 4
push dword [ebx + 0x804]
call eax
add esp, 8
mov dword [ebx + 0x82c], eax
test eax, eax
jne 0x48bb37
mov eax, dword [ebx + 0x808]
test eax, eax
jne 0x48ba79
mov dword [ebx + 0x830], esi
jmp 0x48ba94
push 5
push dword [ebx + 0x804]
call eax
add esp, 8
mov dword [ebx + 0x830], eax
test eax, eax
jne 0x48bb37
mov edi, dword [ebp - 0x5c8]
push 0x20
push 0x408894
push edi
call fcn.00459b90
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x5c4], esi
test esi, esi
jne 0x48bb06
mov dword [ebx], 4
lea eax, [ebx + 4]
test edi, edi
jne 0x48bacd
xor ecx, ecx
mov word [eax], cx
jmp 0x48c5f9
push 0xffffffffffffffff
push edi
push 0x400
push eax
call fcn.0043e68d
mov eax, 0x2800
mov ecx, 0x3ff
add ax, word [ebx + 0x800]
add esp, 0x10
cmp ax, cx
ja 0x48c5f9
xor eax, eax
mov word [ebx + 0x800], ax
jmp 0x48c5f9
push 0
push 0
push esi
call fcn.00525413
add esp, 0xc
test eax, eax
jne 0x48bbcd
push esi
push 0x40
lea eax, [ebp - 0x4a8]
push 1
push eax
call fcn.0052507e
add esp, 0x10
cmp eax, 0x40
sete al
jmp 0x48bb86
mov eax, dword [ebx + 0x82c]
test eax, eax
je 0x48bb5b
lea ecx, [ebp - 0x4a8]
push ecx
push 0x40
push 0
push 0
push dword [ebx + 0x804]
call eax
add esp, 0x14
jmp 0x48bb7b
mov eax, dword [ebx + 0x830]
test eax, eax
je 0x48bbcd
lea ecx, [ebp - 0x4a8]
push ecx
push 0x40
push 0
push dword [ebx + 0x804]
call eax
add esp, 0x10
mov edi, dword [ebp - 0x5c8]
test eax, eax
setns al
test al, al
je 0x48bbcd
mov ax, word [ebp - 0x4a8]
test esi, esi
je 0x48bbee
mov ecx, 0x4944
cmp ax, cx
jne 0x48bbee
push esi
call fcn.00447aaf
mov eax, dword [ebp - 0x4a0]
add esp, 4
mov ecx, ebx
mov dword [ebx + 0xc80], eax
push edi
call fcn.0048d420
test al, al
jne 0x48c5fb
cmp dword [ebx], 0xb
jne 0x48c5fb
mov dword [ebx], 0x11
mov ecx, dword [ebp - 0x5c8]
lea eax, [ebx + 4]
test ecx, ecx
jne 0x48c5bc
xor ecx, ecx
mov word [eax], cx
jmp 0x48c5ec
mov ecx, 0x5a4d
cmp ax, cx
jne 0x48bbcd
push edi
mov ecx, ebx
call fcn.0048e7e0
test al, al
je 0x48c5ec
mov eax, dword [ebp - 0x46c]
test eax, eax
jle 0x48bbcd
test esi, esi
je 0x48bc47
push 0
push eax
push esi
call fcn.00525413
add esp, 0xc
test eax, eax
jne 0x48bbcd
push esi
push 0x108
lea eax, [ebp - 0x5b0]
push 1
push eax
call fcn.0052507e
add esp, 0x10
cmp eax, 0x108
sete al
jmp 0x48bc98
mov ecx, dword [ebx + 0x82c]
test ecx, ecx
je 0x48bc6d
lea edx, [ebp - 0x5b0]
push edx
push 0x108
push 0
push eax
push dword [ebx + 0x804]
call ecx
add esp, 0x14
jmp 0x48bc93
mov ecx, dword [ebx + 0x830]
test ecx, ecx
je 0x48bbcd
lea edx, [ebp - 0x5b0]
push edx
push 0x108
push eax
push dword [ebx + 0x804]
call ecx
add esp, 0x10
test eax, eax
setns al
test al, al
je 0x48bbcd
cmp dword [ebp - 0x5b0], 0x4550
jne 0x48bbcd
movzx eax, word [ebp - 0x598]
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x5c0], edx
xor edi, edi
mov dword [ebp - 0x5bc], edx
mov dword [ebp - 0x5cc], ecx
mov dword [ebp - 0x5d8], edi
cmp eax, 0x10b
je 0x48bd34
cmp eax, 0x20b
jne 0x48bbcd
mov eax, dword [ebp - 0x560]
mov dword [ebx + 0xc7c], eax
mov eax, dword [ebp - 0x52c]
cmp eax, 6
jb 0x48bd1c
mov esi, dword [ebp - 0x4f4]
mov edx, dword [ebp - 0x4f8]
mov dword [ebp - 0x5bc], esi
mov esi, dword [ebp - 0x5c4]
mov dword [ebp - 0x5c0], edx
cmp byte [ebp + 0xc], cl
je 0x48bd8b
cmp eax, 0xe
jb 0x48bd8b
mov ecx, dword [ebp - 0x4b8]
mov edi, dword [ebp - 0x4b4]
jmp 0x48bd7f
mov eax, dword [ebp - 0x560]
mov dword [ebx + 0xc7c], eax
mov eax, dword [ebp - 0x53c]
cmp eax, 6
jb 0x48bd69
mov esi, dword [ebp - 0x504]
mov edx, dword [ebp - 0x508]
mov dword [ebp - 0x5bc], esi
mov esi, dword [ebp - 0x5c4]
mov dword [ebp - 0x5c0], edx
cmp byte [ebp + 0xc], cl
je 0x48bd8b
cmp eax, 0xe
jb 0x48bd8b
mov ecx, dword [ebp - 0x4c8]
mov edi, dword [ebp - 0x4c4]
mov dword [ebp - 0x5d8], edi
mov dword [ebp - 0x5cc], ecx
test edx, edx
je 0x48c5b1
cmp dword [ebp - 0x5bc], 0
je 0x48c5b1
cmp byte [ebp + 0xc], 0
je 0x48bdb6
test ecx, ecx
je 0x48bbcd
test edi, edi
je 0x48bbcd
cmp dword [ebx + 0x82c], 0
jne 0x48bde6
cmp dword [ebx + 0x830], 0
je 0x48bde6
xor eax, eax
xor edi, edi
mov dword [ebp - 0x5b8], edi
cmp byte [ebp + 0xc], al
je 0x48c05b
mov edx, dword [ebp - 0x5cc]
jmp 0x48bfb2
mov eax, dword [ebp - 0x46c]
xor edi, edi
movzx ecx, word [ebp - 0x59c]
add eax, 0x18
add ecx, eax
mov dword [ebp - 0x5e4], edi
movzx eax, word [ebp - 0x5aa]
mov dword [ebp - 0x5e0], eax
xor eax, eax
mov dword [ebp - 0x5dc], ecx
mov dword [ebp - 0x5d0], eax
mov dword [ebp - 0x5d4], eax
mov dword [ebp - 0x5b8], eax
cmp dword [ebp - 0x5e0], eax
jbe 0x48bf7a
test esi, esi
je 0x48be67
push 0
push ecx
push esi
call fcn.00525413
add esp, 0xc
test eax, eax
jne 0x48bf6e
push esi
push 0x28
lea eax, [ebp - 0x448]
push 1
push eax
call fcn.0052507e
add esp, 0x10
cmp eax, 0x28
sete al
jmp 0x48beb2
mov eax, dword [ebx + 0x82c]
test eax, eax
je 0x48be8a
lea edx, [ebp - 0x448]
push edx
push 0x28
push 0
push ecx
push dword [ebx + 0x804]
call eax
add esp, 0x14
jmp 0x48bead
mov eax, dword [ebx + 0x830]
test eax, eax
je 0x48bf6e
lea edx, [ebp - 0x448]
push edx
push 0x28
push ecx
push dword [ebx + 0x804]
call eax
add esp, 0x10
test eax, eax
setns al
test al, al
je 0x48bf6e
add dword [ebp - 0x5dc], 0x28
mov edx, dword [ebp - 0x43c]
cmp edx, dword [ebp - 0x5c0]
ja 0x48bef9
mov ecx, dword [ebp - 0x438]
mov eax, dword [ebp - 0x5c0]
add ecx, edx
add eax, dword [ebp - 0x5bc]
mov esi, dword [ebp - 0x5c4]
cmp ecx, eax
jb 0x48bef9
mov edi, dword [ebp - 0x434]
mov dword [ebp - 0x5e4], edx
mov cl, byte [ebp + 0xc]
test cl, cl
je 0x48bf3d
cmp edx, dword [ebp - 0x5cc]
ja 0x48bf3d
mov ecx, dword [ebp - 0x438]
mov eax, dword [ebp - 0x5cc]
add ecx, edx
add eax, dword [ebp - 0x5d8]
mov esi, dword [ebp - 0x5c4]
cmp ecx, eax
mov cl, byte [ebp + 0xc]
jb 0x48bf3d
mov eax, dword [ebp - 0x434]
mov dword [ebp - 0x5d0], eax
mov dword [ebp - 0x5d4], edx
jmp 0x48bf43
mov eax, dword [ebp - 0x5d0]
test edi, edi
je 0x48bf4f
test cl, cl
je 0x48bf6e
test eax, eax
jne 0x48bf6e
mov eax, dword [ebp - 0x5b8]
mov ecx, dword [ebp - 0x5dc]
inc eax
mov dword [ebp - 0x5b8], eax
cmp eax, dword [ebp - 0x5e0]
jb 0x48be33
mov edx, dword [ebp - 0x5c0]
mov eax, dword [ebp - 0x5d0]
mov ecx, dword [ebp - 0x5e0]
cmp dword [ebp - 0x5b8], ecx
je 0x48bbcd
sub edi, dword [ebp - 0x5e4]
add edi, edx
cmp byte [ebp + 0xc], 0
mov dword [ebp - 0x5b8], edi
je 0x48c05b
sub eax, dword [ebp - 0x5d4]
mov edx, dword [ebp - 0x5cc]
add eax, edx
test esi, esi
je 0x48bfe6
push 0
push eax
push esi
call fcn.00525413
add esp, 0xc
test eax, eax
jne 0x48bbcd
push esi
push 0x48
lea eax, [ebp - 0x468]
push 1
push eax
call fcn.0052507e
add esp, 0x10
cmp eax, 0x48
sete al
jmp 0x48c039
mov ecx, dword [ebx + 0x82c]
test ecx, ecx
je 0x48c009
lea edx, [ebp - 0x468]
push edx
push 0x48
push 0
push eax
push dword [ebx + 0x804]
call ecx
add esp, 0x14
jmp 0x48c034
mov eax, dword [ebx + 0x830]
test eax, eax
je 0x48bbcd
test edx, edx
je 0x48bbcd
lea ecx, [ebp - 0x468]
push ecx
push 0x48
push edx
push dword [ebx + 0x804]
call eax
add esp, 0x10
test eax, eax
setns al
test al, al
je 0x48bbcd
cmp dword [ebp - 0x428], 0
je 0x48bbcd
cmp dword [ebp - 0x424], 0
je 0x48bbcd
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x42c], eax
mov dword [ebp - 0x428], eax
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x618], eax
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x60c], eax
mov dword [ebp - 0x608], eax
mov dword [ebp - 0x604], eax
mov eax, 0x24924925
mul dword [ebp - 0x5bc]
mov eax, dword [ebp - 0x5bc]
sub eax, edx
mov dword [ebp - 0x5f8], ecx
shr eax, 1
add eax, edx
mov dword [ebp - 0x5f4], ecx
mov dl, byte [ebp + 0xc]
shr eax, 4
mov dword [ebp - 0x5f0], ecx
mov dword [ebp - 0x5ec], ecx
mov dword [ebp - 0x5e8], ecx
mov dword [ebp - 0x5bc], eax
test dl, dl
je 0x48c105
push ecx
push ecx
push 0x100
lea eax, [ebp - 0x404]
push eax
push ecx
push ecx
push ecx
push ecx
push dword [ebp - 0x5c8]
call fcn.0043596d
mov dl, byte [ebp + 0xc]
add esp, 0x24
mov eax, dword [ebp - 0x5bc]
xor ecx, ecx
mov dword [ebp - 0x5d4], 0
test eax, eax
je 0x48c37d
test esi, esi
je 0x48c14b
push 0
push edi
push esi
call fcn.00525413
add esp, 0xc
test eax, eax
jne 0x48bbcd
push esi
push 0x1c
lea eax, [ebp - 0x420]
push 1
push eax
call fcn.0052507e
add esp, 0x10
cmp eax, 0x1c
sete al
jmp 0x48c1a4
mov eax, dword [ebx + 0x82c]
test eax, eax
je 0x48c16e
lea ecx, [ebp - 0x420]
push ecx
push 0x1c
push 0
push edi
push dword [ebx + 0x804]
call eax
add esp, 0x14
jmp 0x48c19f
mov eax, dword [ebx + 0x830]
test eax, eax
je 0x48bbcd
mov ecx, dword [ebp - 0x5c0]
test ecx, ecx
je 0x48bbcd
lea edx, [ebp - 0x420]
push edx
push 0x1c
push ecx
push dword [ebx + 0x804]
call eax
add esp, 0x10
test eax, eax
setns al
test al, al
je 0x48bbcd
add dword [ebp - 0x5c0], 0x1c
cmp dword [ebx + 0x82c], 0
jne 0x48c1c5
cmp dword [ebx + 0x830], 0
jne 0x48c1ce
add edi, 0x1c
mov dword [ebp - 0x5b8], edi
cmp byte [ebx + 0x80c], 0
jne 0x48c205
mov eax, dword [ebx + 0x808]
mov byte [ebx + 0x80c], 1
test eax, eax
jne 0x48c1f0
mov dword [ebx + 0x810], eax
jmp 0x48c20b
push 0
push dword [ebx + 0x804]
call eax
add esp, 8
mov dword [ebx + 0x810], eax
jmp 0x48c20b
mov eax, dword [ebx + 0x810]
test eax, eax
je 0x48c223
lea ecx, [ebp - 0x420]
push ecx
push 1
push dword [ebx + 0x804]
call eax
add esp, 0xc
mov eax, dword [ebp - 0x414]
cmp eax, 2
jne 0x48c31b
mov dl, byte [ebp + 0xc]
test dl, dl
je 0x48c300
mov eax, dword [ebp - 0x410]
mov ecx, ebx
mov dword [ebx + 0xc98], eax
mov eax, dword [ebp - 0x40c]
mov dword [ebx + 0xc9c], eax
mov eax, dword [ebp - 0x408]
mov dword [ebx + 0xca0], eax
mov ax, word [ebp - 0x416]
mov byte [ebx + 0xc94], 1
mov dword [ebx + 0x86c], esi
mov word [ebx + 0xca4], ax
call fcn.0048e1f0
test al, al
je 0x48c346
cmp byte [ebx + 0xca6], 0
je 0x48c346
cmp dword [ebx + 0xcbc], 0
je 0x48c346
mov eax, dword [ebx + 0xcc0]
test eax, eax
je 0x48c346
push 0
push 0
push 0x100
lea ecx, [ebp - 0x204]
push ecx
push 0
push 0
push 0
push 0
push eax
call fcn.0043596d
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x404]
push eax
call fcn.00435119
add esp, 0x2c
test eax, eax
jne 0x48c346
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00426f36
mov esp, ebp
pop ebp
ret 8
mov ecx, 7
lea esi, [ebp - 0x420]
lea edi, [ebp - 0x600]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x5c4]
jmp 0x48c349
cmp eax, 4
jne 0x48c328
lea edi, [ebp - 0x61c]
jmp 0x48c333
cmp eax, 0x11
jne 0x48c346
lea edi, [ebp - 0x43c]
mov ecx, 7
lea esi, [ebp - 0x420]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x5c4]
mov dl, byte [ebp + 0xc]
mov eax, dword [ebp - 0x5d4]
inc eax
mov dword [ebp - 0x5d4], eax
cmp eax, dword [ebp - 0x5bc]
jae 0x48c369
mov edi, dword [ebp - 0x5b8]
jmp 0x48c117
mov ecx, dword [ebp - 0x5f8]
mov eax, dword [ebp - 0x430]
mov edi, dword [ebp - 0x618]
jmp 0x48c381
xor eax, eax
xor edi, edi
cmp dword [ebp - 0x5f4], 0
mov dword [ebx + 0x86c], esi
mov byte [ebp - 0x5b1], 0
je 0x48c3d5
mov edx, dword [ebp - 0x5f0]
mov dword [ebx + 0xc98], edx
mov edx, dword [ebp - 0x5ec]
mov dword [ebx + 0xc9c], edx
mov edx, dword [ebp - 0x5e8]
shr ecx, 0x10
mov byte [ebp - 0x5b1], 1
mov byte [ebx + 0xc94], 1
mov dword [ebx + 0xca0], edx
mov word [ebx + 0xca4], cx
jmp 0x48c3dd
test dl, dl
jne 0x48bbcd
test eax, eax
je 0x48c4c6
mov edx, dword [ebp - 0x42c]
mov ecx, dword [ebp - 0x428]
mov eax, dword [ebp - 0x424]
mov byte [ebp - 0x5b1], 1
mov byte [ebx + 0xc94], 1
mov byte [ebx + 0xcc4], 1
mov dword [ebx + 0xcc8], edx
mov dword [ebx + 0xccc], ecx
mov dword [ebx + 0xcd0], eax
cmp edx, 8
jbe 0x48bbcd
test esi, esi
je 0x48c45b
push 0
push eax
push esi
call fcn.00525413
add esp, 0xc
test eax, eax
jne 0x48bbcd
push esi
push 4
lea eax, [ebp - 0x5b8]
push 1
push eax
call fcn.0052507e
add esp, 0x10
cmp eax, 4
sete al
jmp 0x48c4ae
mov edx, dword [ebx + 0x82c]
test edx, edx
je 0x48c47e
lea ecx, [ebp - 0x5b8]
push ecx
push 4
push 0
push eax
push dword [ebx + 0x804]
call edx
add esp, 0x14
jmp 0x48c4a9
mov eax, dword [ebx + 0x830]
test eax, eax
je 0x48bbcd
test ecx, ecx
je 0x48bbcd
lea edx, [ebp - 0x5b8]
push edx
push 4
push ecx
push dword [ebx + 0x804]
call eax
add esp, 0x10
test eax, eax
setns al
test al, al
je 0x48bbcd
cmp dword [ebp - 0x5b8], 0x4244504d
jne 0x48bbcd
mov eax, dword [ebp - 0x59a]
shr eax, 9
and al, 1
mov byte [ebx + 0xc78], al
je 0x48c530
cmp dword [ebp - 0x610], 0
je 0x48c530
push dword [ebp - 0x60c]
mov eax, dword [ebp - 0x5a8]
mov ecx, ebx
push dword [ebp - 0x608]
mov byte [ebp - 0x5b1], 1
push dword [ebp - 0x604]
mov dword [ebx + 0xc80], eax
push esi
push 0
mov dword [ebx + 0xc84], edi
call fcn.0048ec80
mov al, byte [ebp - 0x5b1]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00426f36
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp - 0x5b1], 0
jne 0x48c598
mov ecx, dword [ebp - 0x5c8]
lea eax, [ebx + 4]
mov dword [ebx], 0x13
test ecx, ecx
jne 0x48c568
pop edi
pop esi
mov word [eax], cx
mov al, byte [ebp - 0x5b1]
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00426f36
mov esp, ebp
pop ebp
ret 8
push 0xffffffffffffffff
push ecx
push 0x400
push eax
call fcn.0043e68d
mov ecx, 0x2800
mov eax, 0x3ff
add cx, word [ebx + 0x800]
add esp, 0x10
cmp cx, ax
ja 0x48c598
xor eax, eax
mov word [ebx + 0x800], ax
mov al, byte [ebp - 0x5b1]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00426f36
mov esp, ebp
pop ebp
ret 8
mov dword [ebx], 0x13
jmp 0x48bbd3
push 0xffffffffffffffff
push ecx
push 0x400
push eax
call fcn.0043e68d
mov eax, 0x2800
mov ecx, 0x3ff
add ax, word [ebx + 0x800]
add esp, 0x10
cmp ax, cx
ja 0x48c5ec
xor eax, eax
mov word [ebx + 0x800], ax
test esi, esi
je 0x48c5f9
push esi
call fcn.00447aaf
add esp, 4
xor al, al
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00426f36
mov esp, ebp
pop ebp
ret 8