Function at 0x6fa6c8
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001e8e0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 0x1c], esi
mov eax, dword [esi + 8]
mov dword [ebp - 0x10], esp
cmp eax, ebx
mov dword [ebp - 4], ebx
mov dword [esi + 0xa0], ebx
je 0x6fa705
call fcn.006fae48
cmp dword [ebp + 0xc], ebx
jne 0x6fa70f
mov dword [esi + 0x20], ebx
jmp 0x6fa716
mov dword [esi + 0x20], 1
lea ecx, [esi + 0x24]
call fcn.006fa478
push 0x10000
call fcn.006fa5c8
add esp, 4
cmp eax, ebx
mov dword [esi + 0x7c], eax
jne 0x6fa747
push 0x10028a14
push ebx
push 0x53
push 0x10029320
call fcn.006fd6a8
add esp, 0x10
mov edi, dword [ebp + 8]
push ebx
push 0x80
push 3
push ebx
push 1
push closesocket
push edi
call dword [0x1001f070]
cmp eax, 0xffffffff
mov dword [esi + 8], eax
jne 0x6fa77f
push edi
push 0x100292fc
push ebx
push 0x56
push 0x10029320
call fcn.006fd6a8
add esp, 0x14
lea eax, [esi + 0x10]
push eax
mov eax, dword [esi + 8]
push eax
call dword [0x1001f0e0]
test eax, eax
jne 0x6fa7a6
push 0x100292d8
push ebx
push 0x57
push 0x10029320
call fcn.006fd6a8
add esp, 0x10
mov edx, dword [esi + 8]
lea ecx, [ebp - 0x14]
push ebx
lea edi, [esi + 0xa4]
push ecx
push 2
push edi
mov dword [esi + 0x98], ebx
mov dword [esi + 0x90], ebx
mov dword [esi + 0x88], ebx
push edx
mov dword [esi + 0x9c], ebx
mov dword [esi + 0x94], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x80], ebx
mov word [edi], bx
call dword [0x1001f00c]
test eax, eax
jne 0x6fa808
mov eax, dword [ebp + 8]
push eax
push 0x100292b8
push ebx
push 0x63
push 0x10029320
call fcn.006fd6a8
add esp, 0x14
cmp word [edi], 0x5a4d
je 0x6fa825
push 0x100292a8
push 1
push 0x64
push 0x10029320
call fcn.006fdd58
add esp, 0x10
mov edx, dword [esi + 0x20]
xor ecx, ecx
push edx
xor eax, eax
push 0x40
push ecx
push eax
push edi
mov ecx, esi
call fcn.006fc6e8
cmp eax, ebx
jne 0x6fa842
call fcn.006fde38
mov eax, dword [esi + 0xe0]
mov edx, dword [esi + 0x14]
xor ecx, ecx
add eax, 4
cmp ecx, edx
jl 0x6fa87b
jg 0x6fa85b
cmp eax, dword [esi + 0x10]
jbe 0x6fa87b
push 0x10029290
push 1
push 0x6e
push 0x10029320
mov dword [esi + 0xa0], 2
call fcn.006fdd58
add esp, 0x10
mov eax, dword [esi + 0xe0]
lea ecx, [ebp - 0x18]
cdq
mov ebx, eax
mov eax, dword [esi + 0x20]
mov edi, edx
push eax
push 4
push edi
push ebx
push ecx
mov ecx, esi
call fcn.006fc6e8
test eax, eax
jne 0x6fa8a2
call fcn.006fde38
mov ecx, dword [ebp - 0x18]
mov eax, ecx
and eax, 0xffff
sub eax, 0x454c
je 0x6fa900
sub eax, 2
je 0x6fa8eb
sub eax, 2
je 0x6fa8d5
push 0x10029290
push 1
mov dword [esi + 0xa0], 2
push 0x86
jmp 0x6fa913
cmp ecx, 0x4550
je 0x6fa920
push 0x10029280
push 1
push 0x82
jmp 0x6fa913
push 0x10029268
push 1
mov dword [esi + 0xa0], 3
push 0x7a
jmp 0x6fa913
push 0x10029250
push 1
mov dword [esi + 0xa0], 4
push 0x7e
push 0x10029320
call fcn.006fdd58
add esp, 0x10
mov edx, dword [esi + 0x20]
add ebx, 4
adc edi, 0
push edx
push 0x14
lea eax, [esi + 0xe4]
push edi
push ebx
push eax
mov ecx, esi
mov dword [esi + 0xa0], 6
call fcn.006fc6e8
test eax, eax
jne 0x6fa94f
call fcn.006fde38
mov ax, word [esi + 0xe4]
add ebx, 0x14
adc edi, 0
cmp ax, 0x14c
mov dword [ebp - 0x2c], edi
je 0x6fa994
cmp ax, 0x200
je 0x6fa994
cmp ax, 0x8664
je 0x6fa994
push 0x1002922c
push 1
push 0x94
push 0x10029320
mov dword [esi + 0xa0], 5
call fcn.006fdd58
add esp, 0x10
mov ecx, dword [esi + 0x20]
lea eax, [esi + 0xf8]
push ecx
push 2
push edi
push ebx
push eax
mov ecx, esi
call fcn.006fc6e8
test eax, eax
jne 0x6fa9b3
call fcn.006fde38
mov ax, word [esi + 0xf8]
cmp ax, 0x10b
jne 0x6faa67
xor eax, eax
mov ax, word [esi + 0xf4]
cmp eax, 0xe0
mov dword [ebp - 0x14], eax
jbe 0x6fa9df
mov eax, 0xe0
mov dword [ebp - 0x14], eax
mov edx, dword [esi + 0x20]
lea edi, [esi + 0x1b4]
push edx
push eax
mov eax, dword [ebp - 0x2c]
mov ecx, esi
push eax
push ebx
push edi
call fcn.006fc6e8
test eax, eax
jne 0x6faa00
call fcn.006fde38
lea ecx, [edi + 0x60]
mov dword [esi + 0x120], edi
mov dword [esi + 0x128], ecx
mov edx, dword [edi + 0x5c]
mov dword [esi + 0xfc], edx
mov eax, dword [edi + 0x10]
mov dword [esi + 0x100], eax
mov ecx, dword [edi + 0x20]
mov dword [esi + 0x104], ecx
mov edx, dword [edi + 0x38]
mov dword [esi + 0x10c], edx
mov eax, dword [edi + 0x24]
mov dword [esi + 0x108], eax
mov ecx, dword [edi + 4]
mov dword [esi + 0x110], ecx
mov edx, dword [edi + 0x1c]
xor eax, eax
mov dword [esi + 0x118], edx
mov dword [esi + 0x11c], eax
mov ecx, dword [edi + 0x24]
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], eax
jmp 0x6fab2f
cmp ax, 0x20b
jne 0x6fab16
xor eax, eax
mov ax, word [esi + 0xf4]
cmp eax, 0xf0
mov dword [ebp - 0x14], eax
jbe 0x6faa8c
mov eax, 0xf0
mov dword [ebp - 0x14], eax
mov edx, dword [esi + 0x20]
lea edi, [esi + 0x1b4]
push edx
push eax
mov eax, dword [ebp - 0x2c]
mov ecx, esi
push eax
push ebx
push edi
call fcn.006fc6e8
test eax, eax
jne 0x6faaad
call fcn.006fde38
lea ecx, [edi + 0x70]
mov dword [esi + 0x124], edi
mov dword [esi + 0x128], ecx
mov edx, dword [edi + 0x6c]
mov dword [esi + 0xfc], edx
mov eax, dword [edi + 0x10]
mov dword [esi + 0x100], eax
mov ecx, dword [edi + 0x20]
mov dword [esi + 0x104], ecx
mov edx, dword [edi + 0x38]
mov dword [esi + 0x10c], edx
mov eax, dword [edi + 0x24]
mov dword [esi + 0x108], eax
mov ecx, dword [edi + 4]
mov dword [esi + 0x110], ecx
mov edx, dword [edi + 0x18]
mov dword [esi + 0x118], edx
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x11c], eax
mov ecx, dword [edi + 0x24]
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], 0
jmp 0x6fab2f
push 0x10029210
push 1
push 0xbb
push 0x10029320
call fcn.006fdd58
add esp, 0x10
mov ecx, dword [esi + 0xfc]
mov eax, 0x10
cmp ecx, eax
jbe 0x6fab44
mov dword [esi + 0xfc], eax
xor eax, eax
mov ecx, esi
mov ax, word [esi + 0xf4]
cdq
add ebx, eax
adc edi, edx
call fcn.006fd158
test eax, eax
jne 0x6fab62
call fcn.006fde38
xor eax, eax
mov ax, word [esi + 0xe6]
mov dword [esi + 0x2a4], eax
lea edx, [eax + eax*4]
shl edx, 3
push edx
call fcn.006fa5c8
add esp, 4
mov dword [esi + 0x2a8], eax
test eax, eax
jne 0x6faba2
push 0x10028a14
push eax
push 0xc4
push 0x10029320
call fcn.006fd6a8
add esp, 0x10
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x2a8]
push eax
mov eax, dword [esi + 0x2a4]
lea ecx, [eax + eax*4]
shl ecx, 3
push ecx
push edi
push ebx
push edx
mov ecx, esi
call fcn.006fc6e8
test eax, eax
jne 0x6fabcc
call fcn.006fde38
mov eax, dword [esi + 0x2a4]
mov ecx, esi
lea eax, [eax + eax*4]
shl eax, 3
add ebx, eax
adc edi, 0
call fcn.006fcdc8
test eax, eax
jne 0x6fabed
call fcn.006fde38
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov edx, ecx
push eax
add edx, ebx
mov ebx, eax
adc ebx, edi
sub edx, 1
sbb ebx, 0
push ecx
push ebx
push edx
call fcn.00701d18
mov ecx, dword [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 0x28]
push ecx
push edx
push eax
call fcn.00701cd8
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edx
mov edx, dword [esi + 0x2a4]
shl edx, 2
push edx
call fcn.006fa5c8
add esp, 4
mov dword [esi + 0x2ac], eax
test eax, eax
jne 0x6fac53
push 0x10028a14
push eax
push 0xcc
push 0x10029320
call fcn.006fd6a8
add esp, 0x10
mov ecx, dword [esi + 0x2a4]
mov edi, dword [esi + 0x2ac]
shl ecx, 2
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor edi, edi
mov eax, dword [esi + 0x2a4]
mov dword [ebp + 8], edi
cmp edi, eax
jae 0x6fad42
mov ecx, dword [esi + 0x2a8]
lea eax, [edi + edi*4]
push 8
lea edx, [ecx + eax*8]
lea eax, [ebp - 0x3c]
push edx
push eax
call dword [0x1001f1b0]
lea ecx, [ebp - 0x3c]
add esp, 0xc
test ecx, ecx
mov byte [ebp - 0x34], 0
jne 0x6facb0
xor ebx, ebx
jmp 0x6face6
lea edx, [ebp - 0x3c]
push edx
call dword [0x1001f0e4]
mov edi, eax
inc edi
lea eax, [edi + edi]
add eax, 3
and al, 0xfc
call fcn.006f5cf8
mov ebx, esp
push edi
push ebx
lea eax, [ebp - 0x3c]
push 0xffffffffffffffff
push eax
push 0
push 0
mov word [ebx], 0
call dword [0x1001f03c]
mov edi, dword [ebp + 8]
push ebx
call dword [0x1001f1b8]
lea ecx, [eax + eax + 2]
push ecx
call fcn.006fa5c8
mov edx, dword [esi + 0x2ac]
add esp, 8
mov dword [edx + edi*4], eax
mov eax, dword [esi + 0x2ac]
cmp dword [eax + edi*4], 0
jne 0x6fad28
push 0x10028a14
push 0
push 0xd6
push 0x10029320
call fcn.006fd6a8
add esp, 0x10
mov ecx, dword [esi + 0x2ac]
push ebx
mov edx, dword [ecx + edi*4]
push edx
call dword [0x1001f1f8]
add esp, 8
inc edi
jmp 0x6fac74
mov eax, dword [esi + 0x2a4]
shl eax, 2
push eax
call fcn.006fa5c8
xor edi, edi
add esp, 4
cmp eax, edi
mov dword [esi + 0x2b0], eax
jne 0x6fad78
push 0x10028a14
push edi
push 0xdc
push 0x10029320
call fcn.006fd6a8
add esp, 0x10
mov ecx, esi
call fcn.006fccb8
mov ecx, dword [esi + 0x2a4]
mov edx, dword [esi + 0x2b0]
mov eax, dword [edx + ecx*4 - 4]
mov ecx, dword [esi + 0x2a8]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8 + 0x14]
lea eax, [ecx + eax*8]
mov ecx, dword [eax + 0x10]
xor eax, eax
add edx, ecx
mov ecx, dword [esi + 0x10]
sub ecx, edx
mov edx, dword [esi + 0x14]
sbb edx, eax
mov dword [esi + 0x2b8], ecx
mov eax, edx
mov dword [esi + 0x2bc], edx
cmp eax, edi
jg 0x6fadd8
jl 0x6fadcc
cmp dword [esi + 0x2b8], edi
jae 0x6fadd8
mov dword [esi + 0x2b8], edi
mov dword [esi + 0x2bc], edi
mov edi, 1
mov dword [esi + 0xa0], edi
jmp 0x6fadff
test edi, edi
mov dword [ebp - 4], 0xffffffff
jne 0x6fae11
mov ecx, esi
call fcn.006fae48
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x48]
mov eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8