Function at 0x6ff6c8
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 0x6ff705
call fcn.006ffe48
cmp dword [ebp + 0xc], ebx
jne 0x6ff70f
mov dword [esi + 0x20], ebx
jmp 0x6ff716
mov dword [esi + 0x20], 1
lea ecx, [esi + 0x24]
call fcn.006ff478
push 0x10000
call fcn.006ff5c8
add esp, 4
cmp eax, ebx
mov dword [esi + 0x7c], eax
jne 0x6ff747
push 0x10028a14
push ebx
push 0x53
push 0x10029320
call fcn.007026a8
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 0x6ff77f
push edi
push 0x100292fc
push ebx
push 0x56
push 0x10029320
call fcn.007026a8
add esp, 0x14
lea eax, [esi + 0x10]
push eax
mov eax, dword [esi + 8]
push eax
call dword [0x1001f0e0]
test eax, eax
jne 0x6ff7a6
push 0x100292d8
push ebx
push 0x57
push 0x10029320
call fcn.007026a8
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 0x6ff808
mov eax, dword [ebp + 8]
push eax
push 0x100292b8
push ebx
push 0x63
push 0x10029320
call fcn.007026a8
add esp, 0x14
cmp word [edi], 0x5a4d
je 0x6ff825
push 0x100292a8
push 1
push 0x64
push 0x10029320
call fcn.00702d58
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.007016e8
cmp eax, ebx
jne 0x6ff842
call fcn.00702e38
mov eax, dword [esi + 0xe0]
mov edx, dword [esi + 0x14]
xor ecx, ecx
add eax, 4
cmp ecx, edx
jl 0x6ff87b
jg 0x6ff85b
cmp eax, dword [esi + 0x10]
jbe 0x6ff87b
push 0x10029290
push 1
push 0x6e
push 0x10029320
mov dword [esi + 0xa0], 2
call fcn.00702d58
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.007016e8
test eax, eax
jne 0x6ff8a2
call fcn.00702e38
mov ecx, dword [ebp - 0x18]
mov eax, ecx
and eax, 0xffff
sub eax, 0x454c
je 0x6ff900
sub eax, 2
je 0x6ff8eb
sub eax, 2
je 0x6ff8d5
push 0x10029290
push 1
mov dword [esi + 0xa0], 2
push 0x86
jmp 0x6ff913
cmp ecx, 0x4550
je 0x6ff920
push 0x10029280
push 1
push 0x82
jmp 0x6ff913
push 0x10029268
push 1
mov dword [esi + 0xa0], 3
push 0x7a
jmp 0x6ff913
push 0x10029250
push 1
mov dword [esi + 0xa0], 4
push 0x7e
push 0x10029320
call fcn.00702d58
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.007016e8
test eax, eax
jne 0x6ff94f
call fcn.00702e38
mov ax, word [esi + 0xe4]
add ebx, 0x14
adc edi, 0
cmp ax, 0x14c
mov dword [ebp - 0x2c], edi
je 0x6ff994
cmp ax, 0x200
je 0x6ff994
cmp ax, 0x8664
je 0x6ff994
push 0x1002922c
push 1
push 0x94
push 0x10029320
mov dword [esi + 0xa0], 5
call fcn.00702d58
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.007016e8
test eax, eax
jne 0x6ff9b3
call fcn.00702e38
mov ax, word [esi + 0xf8]
cmp ax, 0x10b
jne 0x6ffa67
xor eax, eax
mov ax, word [esi + 0xf4]
cmp eax, 0xe0
mov dword [ebp - 0x14], eax
jbe 0x6ff9df
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.007016e8
test eax, eax
jne 0x6ffa00
call fcn.00702e38
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 0x6ffb2f
cmp ax, 0x20b
jne 0x6ffb16
xor eax, eax
mov ax, word [esi + 0xf4]
cmp eax, 0xf0
mov dword [ebp - 0x14], eax
jbe 0x6ffa8c
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.007016e8
test eax, eax
jne 0x6ffaad
call fcn.00702e38
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 0x6ffb2f
push 0x10029210
push 1
push 0xbb
push 0x10029320
call fcn.00702d58
add esp, 0x10
mov ecx, dword [esi + 0xfc]
mov eax, 0x10
cmp ecx, eax
jbe 0x6ffb44
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.00702158
test eax, eax
jne 0x6ffb62
call fcn.00702e38
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.006ff5c8
add esp, 4
mov dword [esi + 0x2a8], eax
test eax, eax
jne 0x6ffba2
push 0x10028a14
push eax
push 0xc4
push 0x10029320
call fcn.007026a8
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.007016e8
test eax, eax
jne 0x6ffbcc
call fcn.00702e38
mov eax, dword [esi + 0x2a4]
mov ecx, esi
lea eax, [eax + eax*4]
shl eax, 3
add ebx, eax
adc edi, 0
call fcn.00701dc8
test eax, eax
jne 0x6ffbed
call fcn.00702e38
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.00706d18
mov ecx, dword [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 0x28]
push ecx
push edx
push eax
call fcn.00706cd8
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edx
mov edx, dword [esi + 0x2a4]
shl edx, 2
push edx
call fcn.006ff5c8
add esp, 4
mov dword [esi + 0x2ac], eax
test eax, eax
jne 0x6ffc53
push 0x10028a14
push eax
push 0xcc
push 0x10029320
call fcn.007026a8
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 0x6ffd42
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 0x6ffcb0
xor ebx, ebx
jmp 0x6ffce6
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.006facf8
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.006ff5c8
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 0x6ffd28
push 0x10028a14
push 0
push 0xd6
push 0x10029320
call fcn.007026a8
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 0x6ffc74
mov eax, dword [esi + 0x2a4]
shl eax, 2
push eax
call fcn.006ff5c8
xor edi, edi
add esp, 4
cmp eax, edi
mov dword [esi + 0x2b0], eax
jne 0x6ffd78
push 0x10028a14
push edi
push 0xdc
push 0x10029320
call fcn.007026a8
add esp, 0x10
mov ecx, esi
call fcn.00701cb8
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 0x6ffdd8
jl 0x6ffdcc
cmp dword [esi + 0x2b8], edi
jae 0x6ffdd8
mov dword [esi + 0x2b8], edi
mov dword [esi + 0x2bc], edi
mov edi, 1
mov dword [esi + 0xa0], edi
jmp 0x6ffdff
test edi, edi
mov dword [ebp - 4], 0xffffffff
jne 0x6ffe11
mov ecx, esi
call fcn.006ffe48
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