Function at 0x2689ee9a
Capabilities:
Parse pe header

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
mov ebx, eax
xor esi, esi
cmp ebx, esi
je 0x2689f42a
cmp word [ebx], si
je 0x2689f42a
mov ebp, dword [sym.imp.MSVCRT.dll_wcslen]
push ebx
call ebp
lea eax, [eax + eax + 0x16]
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
push ebx
mov dword [esp + 0x18], eax
call ebp
lea eax, [eax + eax + 0x16]
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 0x10
cmp dword [esp + 0xc], esi
mov dword [esp + 0x14], eax
je 0x2689f400
cmp eax, esi
je 0x2689f400
mov esi, dword [esp + 0xc]
push edi
xor eax, eax
mov edi, esi
stosd dword es:[edi], eax
add esi, 0xa
push ebx
push esi
stosd dword es:[edi], eax
call dword [sym.imp.MSVCRT.dll_wcscpy]
pop ecx
pop ecx
mov ecx, esi
call fcn.2689ee86
jmp 0x2689ef15
inc esi
inc esi
cmp word [esi], 0x20
je 0x2689ef13
push esi
call ebp
xor ebx, ebx
test eax, eax
pop ecx
jbe 0x2689ef3f
push esi
call ebp
cmp word [esi + eax*2 - 2], 0x20
pop ecx
jne 0x2689ef3f
push esi
call ebp
push esi
mov word [esi + eax*2 - 2], bx
call ebp
pop ecx
jmp 0x2689ef20
push esi
call ebp
lea eax, [esi + eax*2 - 2]
pop ecx
mov cx, word [eax]
cmp cx, 0x53
je 0x2689ef5d
cmp word [eax - 2], 0x55
jne 0x2689ef60
cmp cx, 0x58
jne 0x2689ef60
mov word [eax], bx
push esi
call ebp
pop ecx
lea ecx, [esi + eax*2 - 2]
xor edx, edx
mov dx, word [ecx - 2]
mov eax, edx
call fcn.2689ee49
test eax, eax
jne 0x2689ef85
cmp dx, 0x4e
je 0x2689ef85
cmp dx, 0x4d
jne 0x2689ef8b
cmp word [ecx], 0x54
je 0x2689ef9d
cmp dx, 0x41
je 0x2689ef97
cmp dx, 0x4f
jne 0x2689efa0
cmp word [ecx], 0x50
jne 0x2689efa0
mov word [ecx], bx
push esi
call ebp
lea eax, [esi + eax*2 - 2]
cmp word [eax - 2], 0x45
pop ecx
jne 0x2689efb8
cmp word [eax], 0x5a
jne 0x2689efb8
mov word [eax], bx
push esi
call ebp
lea eax, [esi + eax*2 - 2]
pop ecx
mov cx, word [eax - 2]
cmp cx, 0x45
je 0x2689efdc
cmp cx, 0x49
je 0x2689efdc
cmp cx, 0x4e
je 0x2689efdc
cmp cx, 0x52
jne 0x2689efe5
cmp word [eax], 0x44
jne 0x2689efe5
mov word [eax], bx
cmp cx, 0x4f
je 0x2689effb
mov cx, word [eax - 4]
cmp cx, 0x41
je 0x2689effb
cmp cx, 0x55
jne 0x2689f004
cmp word [eax], 0x44
jne 0x2689f004
mov word [eax], bx
push esi
call ebp
lea eax, [esi + eax*2 - 2]
cmp word [eax - 2], 0x45
pop ecx
jne 0x2689f01c
cmp word [eax], 0x52
jne 0x2689f01c
mov word [eax], bx
push esi
call ebp
cmp eax, 1
pop ecx
jb 0x2689f05b
lea edi, [esi + 2]
cmp word [edi], bx
je 0x2689f05b
push 2
pop ebx
sub ebx, esi
cmp word [edi - 2], 0x51
jne 0x2689f051
cmp word [edi], 0x55
jne 0x2689f051
lea eax, [ebx + edi - 2]
sar eax, 1
push eax
mov word [edi - 2], 0x4b
call fcn.2689ee17
inc edi
inc edi
cmp word [edi], 0
jne 0x2689f032
xor ebx, ebx
push esi
call ebp
lea eax, [esi + eax*2 - 2]
cmp word [eax], 0x45
pop ecx
jne 0x2689f06c
mov word [eax], bx
push esi
call ebp
cmp eax, 1
pop ecx
jb 0x2689f0aa
lea ecx, [esi + 2]
jmp 0x2689f0a5
mov ax, word [ecx - 4]
call fcn.2689ee49
test eax, eax
je 0x2689f0a3
cmp word [ecx - 2], 0x4d
jne 0x2689f0a3
mov ax, word [ecx]
cmp ax, 0x42
je 0x2689f09d
cmp ax, 0x50
jne 0x2689f0a3
mov word [ecx - 2], 0x4e
inc ecx
inc ecx
cmp word [ecx], bx
jne 0x2689f07a
cmp word [esi], bx
mov eax, esi
je 0x2689f0c3
cmp word [eax], 0x59
jne 0x2689f0bc
mov word [eax], 0x49
inc eax
inc eax
cmp word [eax], bx
jne 0x2689f0b1
cmp word [esi], bx
mov eax, esi
je 0x2689f0dc
cmp word [eax], 0x2d
jne 0x2689f0d5
mov word [eax], 0x20
inc eax
inc eax
cmp word [eax], bx
jne 0x2689f0ca
push esi
call ebp
cmp eax, 1
pop ecx
jb 0x2689f103
lea eax, [esi + 2]
jmp 0x2689f0fe
cmp word [eax - 2], 0x4f
jne 0x2689f0fc
cmp word [eax], 0x49
jne 0x2689f0fc
mov word [eax], 0x41
inc eax
inc eax
cmp word [eax], bx
jne 0x2689f0ea
push esi
call ebp
cmp eax, 1
pop ecx
jb 0x2689f13d
lea ebx, [esi + 2]
cmp word [ebx], 0
je 0x2689f13d
mov edi, ebx
sub edi, esi
cmp word [esi + edi - 2], 0x45
jne 0x2689f133
cmp word [ebx], 0x55
jne 0x2689f133
mov eax, edi
sar eax, 1
push eax
call fcn.2689ee17
jmp 0x2689f137
inc ebx
inc ebx
inc edi
inc edi
cmp word [ebx], 0
jne 0x2689f119
push esi
call ebp
cmp eax, 1
pop ecx
jb 0x2689f1ca
lea edi, [esi + 2]
cmp word [edi], 0
je 0x2689f1ca
mov ebx, edi
sub ebx, esi
lea eax, [esi + 4]
cmp edi, eax
jb 0x2689f1a0
cmp word [edi - 4], 0x45
jne 0x2689f1a0
lea eax, [edi - 2]
cmp word [eax], 0x41
mov dword [esp + 0x1c], eax
jne 0x2689f1a0
cmp word [edi], 0x55
jne 0x2689f1a0
mov eax, ebx
sar eax, 1
add eax, 0xfffffffe
push eax
mov dword [esp + 0x18], eax
call fcn.2689ee17
push dword [esp + 0x14]
call fcn.2689ee17
dec ebx
mov word [edi - 4], 0x4f
mov edi, dword [esp + 0x1c]
dec ebx
jmp 0x2689f1c4
cmp word [edi - 2], 0x41
jne 0x2689f1c0
cmp word [edi], 0x55
jne 0x2689f1c0
mov eax, ebx
sar eax, 1
dec eax
push eax
call fcn.2689ee17
mov word [edi - 2], 0x4f
jmp 0x2689f1c4
inc edi
inc edi
inc ebx
inc ebx
cmp word [edi], 0
jne 0x2689f157
push esi
call ebp
xor ebx, ebx
cmp eax, 1
pop ecx
jb 0x2689f206
lea ecx, [esi + 2]
jmp 0x2689f201
mov ax, word [ecx - 2]
call fcn.2689ee49
test eax, eax
je 0x2689f1ff
cmp word [ecx], 0x53
jne 0x2689f1ff
mov ax, word [ecx + 2]
call fcn.2689ee49
test eax, eax
je 0x2689f1ff
mov word [ecx], 0x5a
inc ecx
inc ecx
cmp word [ecx], bx
jne 0x2689f1da
push esi
call ebp
cmp eax, 1
pop ecx
jb 0x2689f237
lea eax, [esi + 2]
jmp 0x2689f232
cmp word [eax - 2], 0x43
jne 0x2689f230
mov cx, word [eax]
cmp cx, 0x45
je 0x2689f22a
cmp cx, 0x49
jne 0x2689f230
mov word [eax - 2], 0x53
inc eax
inc eax
cmp word [eax], bx
jne 0x2689f214
cmp word [esi], bx
mov eax, esi
je 0x2689f250
cmp word [eax], 0x43
jne 0x2689f249
mov word [eax], 0x4b
inc eax
inc eax
cmp word [eax], bx
jne 0x2689f23e
push esi
call ebp
cmp eax, 1
pop ecx
jb 0x2689f2af
lea edi, [esi + 2]
cmp word [edi], bx
je 0x2689f2af
push 0xfffffffffffffffe
pop ebx
sub ebx, esi
mov ax, word [edi - 2]
cmp ax, 0x41
je 0x2689f276
cmp ax, 0x45
jne 0x2689f2a7
cmp word [edi], 0x4e
jne 0x2689f2a7
xor ecx, ecx
mov cx, word [edi + 2]
mov eax, ecx
call fcn.2689ee49
test eax, eax
jne 0x2689f2a7
cmp cx, 0x4e
je 0x2689f2a7
lea eax, [edi + ebx + 2]
sar eax, 1
push eax
call fcn.2689ee17
mov word [edi - 2], 0x41
jmp 0x2689f2a9
inc edi
inc edi
cmp word [edi], 0
jne 0x2689f266
push esi
call ebp
cmp eax, 1
pop ecx
jb 0x2689f306
lea edi, [esi + 2]
cmp word [edi], 0
je 0x2689f306
push 0xfffffffffffffffe
pop ebx
sub ebx, esi
cmp word [edi - 2], 0x4f
jne 0x2689f2fe
cmp word [edi], 0x4e
jne 0x2689f2fe
xor ecx, ecx
mov cx, word [edi + 2]
mov eax, ecx
call fcn.2689ee49
test eax, eax
jne 0x2689f2fe
cmp cx, 0x4e
je 0x2689f2fe
lea eax, [ebx + edi + 2]
sar eax, 1
push eax
call fcn.2689ee17
mov word [edi - 2], 0x4f
jmp 0x2689f300
inc edi
inc edi
cmp word [edi], 0
jne 0x2689f2c6
push esi
call ebp
cmp eax, 1
pop ecx
jb 0x2689f344
lea edi, [esi + 2]
cmp word [edi], 0
je 0x2689f344
push 2
pop ebx
sub ebx, esi
cmp word [edi - 2], 0x41
jne 0x2689f33c
cmp word [edi], 0x49
jne 0x2689f33c
lea eax, [ebx + edi - 2]
sar eax, 1
push eax
call fcn.2689ee17
mov word [edi - 2], 0x45
inc edi
inc edi
cmp word [edi], 0
jne 0x2689f31d
cmp word [esi], 0
je 0x2689f3a7
mov dword [esp + 0x14], 2
sub dword [esp + 0x14], esi
lea edi, [esi - 2]
lea ebx, [edi + 2]
cmp word [ebx], 0x48
jne 0x2689f39e
mov eax, dword [esp + 0x14]
add eax, edi
sar eax, 1
push eax
call fcn.2689ee17
cmp ebx, esi
jbe 0x2689f391
cmp word [edi], 0x43
jne 0x2689f391
mov ax, word [ebx]
call fcn.2689ee49
neg eax
sbb eax, eax
and eax, 0xfffffffd
add eax, 0x4b
mov word [edi], ax
jmp 0x2689f3a0
cmp word [edi], 0x50
jne 0x2689f3a0
mov word [edi], 0x46
jmp 0x2689f3a0
mov edi, ebx
cmp word [edi + 2], 0
jne 0x2689f359
push esi
call ebp
cmp eax, 1
pop ecx
jb 0x2689f3dd
lea edi, [esi + 2]
cmp word [edi], 0
je 0x2689f3dd
mov ebp, edi
sub ebp, esi
mov ax, word [esi + ebp - 2]
cmp ax, word [edi]
jne 0x2689f3d3
mov eax, ebp
sar eax, 1
push eax
call fcn.2689ee17
jmp 0x2689f3d7
inc edi
inc edi
inc ebp
inc ebp
cmp word [edi], 0
jne 0x2689f3bd
push esi
push dword [esp + 0x28]
call dword [sym.imp.MSVCRT.dll_wcscpy]
push dword [esp + 0x18]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [esp + 0x24]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 0x10
pop edi
jmp 0x2689f431
push dword [esp + 0xc]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [esp + 0x18]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov eax, dword [esp + 0x2c]
push 0x13965
mov ebx, 0x268f3f58
call fcn.268e6bb2
add esp, 0xc
jmp 0x2689f431
mov eax, dword [esp + 0x20]
mov word [eax], si
pop esi
pop ebp
pop ebx
add esp, 0x10
ret