Function at 0x2d05c0
Capabilities:
Check os version
Parse pe header
Resolve function by parsing pe exports

Disassembly:
xor byte [eax], al
add byte [esi + 0x6a], dl
add byte [ebx + 0x10ff0845], cl
je 0x2d0547
push 0x2d0514
ret
call fcn.002d05c0
add esp, 4
je 0x2d056c
jne 0x2d056c
je 0x2d0573
jne 0x2d0573
por mm3, qword [edx - 0x17]
push edi
je 0x2d04be
jne 0x2d04be
jmp 0xf6a2fd60
push esi
call fcn.002c5df0
je 0x2d052f
push 0x2d0544
ret
add eax, 2
je 0x2d0518
push 0x2d04d2
ret
push 0x2d059b
ret
add eax, 3
push eax
call fcn.00304b2a
je 0x2d0556
jne 0x2d0556
add esp, 0xc
mov edx, dword [edi + 0x10]
push 0x2d0593
ret
push edi
push esi
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0x10]
je 0x2d0522
jne 0x2d0522
jmp 0x4f18942
add esp, 4
mov esi, eax
test eax, eax
je 0x2d04c6
mov eax, dword [edi + 0x10]
je 0x2d0508
jne 0x2d0508
je 0x5f8bf5f9
mov eax, esi
pop esi
pop edi
ret 4
mov ecx, esi
nop word cs:[eax + eax]
nop
jmp 0x2d0583
mov byte [ecx], 0
inc ecx
dec eax
jne 0x2d0580
mov eax, dword [edi + 0x10]
jmp 0x2d05a0
lea ecx, [edi + 0x14]
push eax
push ecx
je 0x2d04f8
jne 0x2d04f8
nop word cs:[eax + eax]
nop dword [eax + eax]
push ebx
push edi
jmp 0x2d06fd
mov eax, ebx
xor eax, 2
je 0x2d0813
jne 0x2d0813
je 0xe93d0065
cmp edx, 0xf
jmp 0x2d0855
outsd dx, dword [esi]
add al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], dh
pop ecx
add eax, 0x48c840f
add byte [eax], al
xor byte [ecx + 5], bl
je 0x2d0a7f
jne 0x2d0a7f
add byte [eax], al
add byte [eax], al
mov byte [esp + 4], al
je 0x2d0bdf
jne 0x2d0bdf
movzx ebx, byte [esi + 2]
jmp 0x2d096c
shr edi, 0x17
lea eax, [eax + edi + 2]
je 0x2d0c4c
jne 0x2d0c4c
je 0x2d0c4c
jne 0x2d0c4c
je 0x2d05fd
jne 0x2d05fd
je 0xd8bbc8d
movzx ebx, byte [esi + 0xd]
mov eax, ebx
xor eax, 2
lea edi, [eax + 0xd]
imul edi, edi, 0x8081
je 0x2d09fa
jne 0x2d09fa
jmp 0x2d39ab05
movzx eax, byte [esi + 0xf]
je 0x2d07a0
jne 0x2d07a0
jmp 0xf0b0df69
mov eax, ebx
xor eax, 2
lea edi, [eax + 5]
je 0x2d0b01
jne 0x2d0b01
mov byte [esp + 0xc], al
jmp 0x2d0823
push esi
je 0x2d0d31
jne 0x2d0d31
je 0x2d0583
jne 0x2d06fd
je 0x88bbd27
movzx ebx, byte [esi + 8]
mov eax, ebx
xor eax, 2
lea edi, [eax + 8]
imul edi, edi, 0x8081
shr edi, 0x17
lea eax, [eax + edi + 8]
mov byte [esp + 8], al
je 0x2d09af
jne 0x2d09af
je 0x2d0823
jne 0x2d04f8
je 0x9514bd7
mov byte [esp + 9], al
xor byte [ecx + 9], bl
je 0x2d0a56
push 0x2d06a1
ret
je 0x2d09a8
movzx ebx, byte [esi + 7]
mov eax, ebx
push 0x2d09eb
ret
je 0x2d0655
jne 0x2d0655
je 0x2d04b0
jne fcn.002d05c0
jmp 0x2d09a8
mov esi, eax
xor esi, 2
lea edi, [esi + 0xf]
imul edi, edi, 0x8081
shr edi, 0x17
lea ebx, [esi + edi + 0xf]
mov byte [esp + 0xf], bl
push 0x2d0760
ret
je 0x2d088f
push 0x2d0b8f
ret
add esp, 0x10
je 0x2d0ce4
jne 0x2d0ce4
add byte [eax], al
add byte [eax], al
je 0x2d0835
jne 0x2d0835
add byte [eax], al
add byte [eax], al
lea eax, [eax + edi + 5]
mov byte [esp + 5], al
je 0x2d05ea
jne 0x2d05ea
jmp 0x2b1ee9
je 0x2d0acf
jne 0x2d0acf
add byte [eax], al
add byte [eax], al
xor byte [ecx + 0xc], bl
cmp edx, 0xd
je 0x2d09a8
jmp 0x2d067a
imul edi, edi, 0x8081
je 0x2d08d3
jne 0x2d08d3
je 0x2d0c06
jne 0x2d09a8
je 0x17a8c68
je 0x2d09a8
add byte [eax], al
je 0x2d06cb
jne 0x2d06cb
xor eax, 2
jmp 0x2d0b76
lea edi, [eax + 9]
imul edi, edi, 0x8081
shr edi, 0x17
je 0x2d0c90
jne 0x2d0c90
je 0x2d04b0
je 0x2d0d51
jne 0x2d0d51
je 0xd8b68cce
je 0x518e14a
mov eax, ebx
jmp 0x2d08c5
add byte [eax], al
add byte [eax], al
xor eax, 2
lea edi, [eax + 3]
push 0x2d063f
ret
je 0x2d0b95
jne 0x2d0b95
jmp 0x2d08bb
je 0x2d0bf4
jne 0x2d0bf4
mov bl, byte [esi]
je 0x2d0c73
jne 0x2d0c73
je 0x80af086b
add byte [eax], al
shr edi, 0x17
lea eax, [eax + edi + 4]
push 0x2d05fd
ret
mov eax, ebx
xor eax, 2
lea edi, [eax + 2]
imul edi, edi, 0x8081
jmp 0x2d0783
je 0x2d05cb
jne 0x2d05cb
je 0x2d0d58
jne 0x2d0d44
jmp 0xb63c1612
je 0x2d09a8
movzx ebx, byte [esi + 0xa]
push 0x2d0870
ret
jmp 0x2d07cc
xor byte [ecx + 8], bl
cmp edx, 9
je 0x2d0a67
jne 0x2d0a67
je 0x2d0cec
jne 0x2d0cec
je 0x36d8de2
add byte [eax], al
jne 0x2d0d15
je 0x2d0acf
jne 0x2d0bc7
add byte [eax], al
add byte [eax], al
je 0x2d0a90
jmp 0x2d0d6d
shr edi, 0x17
lea eax, [eax + edi + 0xd]
mov byte [esp + 0xd], al
xor byte [ecx + 0xd], bl
cmp edx, 0xe
je 0x2d09a8
movzx ebx, byte [esi + 0xe]
je 0x2d0981
jne 0x2d0981
movzx ebx, byte [esi + 6]
mov eax, ebx
xor eax, 2
jmp 0x2d0bb8
cmp edx, 2
je 0x2d09a8
je 0x2d060d
jne 0x2d060d
cmp edx, 0xa
je 0x2d0bc7
jne 0x2d0bc7
je 0xff688e7a
je 0x2d09a8
invalid
movzx ebx, byte [esi + 9]
mov eax, ebx
xor eax, 2
jmp 0x2d07c0
cmp edx, 6
je 0x2d0cec
jne 0x2d0cec
je 0x8d2ffb17
xor eax, 2
lea edi, [eax + 7]
js 0x2d0a9d
je 0x2d0a9a
jne 0x2d0a9a
imul edi, edi, 0x8081
add byte [eax], 0
shr edi, 0x17
lea eax, [eax + edi + 7]
mov byte [esp + 7], al
xor byte [ecx + 7], bl
cmp edx, 8
jmp 0x2d0aeb
lea eax, [eax + edi + 0xb]
mov byte [esp + 0xb], al
xor byte [ecx + 0xb], bl
cmp edx, 0xc
je 0x2d08e2
jne 0x2d08e2
je 0x693b8360
lea edi, [eax + 0xe]
imul edi, edi, 0x8081
shr edi, 0x17
inc dword [ecx - 0x3effff80]
out dx, eax
pop ss
lea eax, [eax + edi + 0xe]
mov byte [esp + 0xe], al
push 0x2d0c06
ret
je 0x2d09a8
je 0x2d0714
jne 0x2d0714
add byte [eax], al
add byte [eax], al
imul edi, edi, 0x8081
shr edi, 0x17
jmp 0x2d07e7
mov byte [esp], al
xor byte [ecx], bl
cmp edx, 1
je 0x2d09a8
movzx ebx, byte [esi + 1]
je 0x2d0d0b
push 0x2d0888
ret
je 0x2d0d58
jne 0x2d0d58
add byte [eax], al
add byte [eax], al
jmp 0x2d09fa
shr edi, 0x17
lea eax, [eax + edi + 6]
mov byte [esp + 6], al
xor byte [ecx + 6], bl
cmp edx, 7
je 0x2d0770
je 0x2d0cde
jne 0x2d0cde
lea edi, [eax + 6]
je 0x2d07df
push 0x2d06c3
ret
je 0x2d099a
jne 0x2d099a
je 0x2d0547
jne 0x2d04e2
xor byte [ecx + 4], bl
cmp edx, 5
je 0x2d09a8
movzx ebx, byte [esi + 5]
jmp 0x2d06dc
je 0x2d09a8
movzx ebx, byte [esi + 0xc]
mov eax, ebx
push 0x2d0cfa
ret
xor byte [ecx + 0xe], bl
je 0x2d05de
jne 0x2d05de
add edx, 0xfffffff0
je 0x2d09a8
mov eax, esp
add ecx, 0x10
push eax
push 0x2d0a2c
ret
mov byte [esp + 2], al
xor byte [ecx + 2], bl
cmp edx, 3
je 0x2d09a8
movzx ebx, byte [esi + 3]
je 0x2d08bd
jne 0x2d08bd
jmp 0x2d05cb
mov bh, bl
xor bh, 2
cmp bh, 0xff
sete al
add al, bh
je 0x2d0b3d
jne 0x2d0b3d
add byte [eax], al
add byte [eax], al
lea eax, [eax + edi + 9]
je 0x2d074b
jne 0x2d074b
add byte [eax], al
add byte [eax], al
xor byte [ecx + 0xa], bl
cmp edx, 0xb
je 0x2d09a8
movzx ebx, byte [esi + 0xb]
mov eax, ebx
je 0x2d0867
jne 0x2d0867
je 0x2c38b1
inc dword [eax]
add byte [eax], al
add byte [edi], cl
test ch, dl
cld
invalid
jne 0x2d0770
push 0x2d0629
ret
je 0x2d09a8
push 0x2d0a1d
ret
push 0x2d0947
ret
lea eax, [eax + edi + 1]
je 0x2d0d44
jne 0x2d0d44
jmp 0x36551af
sub esp, 0x10
mov esi, dword [esp + 0x20]
je 0x2d08ee
jne 0x2d08ee
mov byte [esp + 1], al
xor byte [ecx + 1], bl
jmp 0x2d0a41
jne 0x2d0714
jmp 0x693885e9
lea edi, [eax + 0xb]
imul edi, edi, 0x8081
shr edi, 0x17
jmp 0x2d0ab3
jne 0x2d0a90
nop word cs:[eax + eax]
nop dword [eax]