Function at 0x1003d5fd
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10060a5c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x128
cmp byte [ebp + 0x24], 0
push ebx
push esi
push edi
mov dword [esp + 0x30], ecx
je 0x1003dcc9
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x1003dcc1
lea eax, [esp + 0x80]
xor ebx, ebx
push eax
push 0x1000
lea ecx, [esp + 0x40]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
call fcn.100143c6
mov dword [esp + 0x13c], ebx
mov eax, dword [esp + 0x3c]
sub eax, dword [esp + 0x38]
push dword [esp + 0x38]
sar eax, 1
push eax
push 0x3fec
push 0x217e
call fcn.10030758
pop ecx
pop ecx
call eax
push dword [esp + 0x38]
lea ecx, [esp + 0x54]
call fcn.1001fd19
inc ebx
push 0x490d
mov byte [esp + 0x140], bl
call fcn.100135af
cmp dword [esp + 0x68], 8
pop ecx
movzx edx, ax
lea ecx, [esp + 0x50]
cmovae ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x48], edx
cmp word [ecx + eax*2 - 2], dx
je 0x1003d70d
lea eax, [esp + 0x50]
mov edx, 0x1a74
push eax
push ebx
push 0x1c7c
push ebx
push 0x7dda
push 0x4fda
push 0x76db
push 0x25cd
push 0x7dd1
push 0x46b8
push ebx
lea ecx, [esp + 0x74]
call fcn.1003cd3d
add esp, 0x2c
push ecx
mov edx, 0x2fb5
lea ecx, [esp + 0x104]
call fcn.10001ad8
push ecx
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x148], 2
call fcn.1003ee3c
xor edi, edi
mov byte [esp + 0x13c], bl
push edi
push ebx
lea ecx, [esp + 0x108]
call fcn.100021c8
cmp dword [esp + 0x64], 8
lea eax, [esp + 0x50]
push edi
cmovae eax, dword [esp + 0x54]
push eax
push 0x3fec
push 0x6470
call fcn.10030758
pop ecx
pop ecx
call eax
push ecx
lea eax, [esp + 0x4c]
mov dl, bl
push eax
lea eax, [esp + 0x58]
mov ecx, 0x598
push 0x71ca
push eax
call fcn.1003d470
add esp, 8
mov dword [esp + 0x4c], edi
lea eax, [esp + 0x4c]
push esi
push eax
push ecx
push ebx
push ecx
push 0x77a4
mov ecx, 0x173e
call fcn.1003d59c
add esp, 0x20
mov byte [esp + 0x24], bl
xor eax, eax
mov word [esp + 0x25], 0x3cd
mov dword [esp + 0xc], eax
mov byte [esp + 0x27], al
mov byte [esp + 0x28], bl
mov dword [esp + 0x29], 0x1d02da
mov byte [esp + 0x2d], 0x56
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x88]
call fcn.10001c97
push 0x10
pop edx
lea ecx, [esp + 0xe8]
mov byte [esp + 0x13c], 3
call fcn.100325ed
push ecx
push ecx
lea eax, [esp + 0xf0]
mov byte [esp + 0x144], 4
push eax
lea ecx, [esp + 0x90]
call fcn.1003ee3c
push 0x65
pop eax
push 2
xor ecx, ecx
mov word [esp + 0x7a], ax
pop esi
mov dword [esp + 0x34], ecx
cmp esi, 4
jne 0x1003d835
push 2
pop ecx
mov dword [esp + 0x34], ecx
jmp 0x1003d887
movzx edx, byte [esp + esi + 0x25]
mov eax, esi
sub eax, ecx
push 0x66b3
movzx eax, byte [esp + eax + 0x26]
movzx ecx, word [esp + eax*2 + 0x78]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [esp + esi + 0x28]
add ecx, edx
mov edx, 0x693f
push ecx
push 0x2d5e
mov word [esp + eax*2 + 0x80], cx
lea eax, [esp + 0x40]
push ebx
push eax
push ecx
mov ecx, 0x2707
call fcn.1003d05c
mov ecx, dword [esp + 0x4c]
add esp, 0x18
add esi, 2
cmp esi, 0xa
jb 0x1003d827
xor eax, eax
mov dword [esp + 0xe0], 7
and dword [esp + 0xdc], eax
lea ecx, [esp + 0xcc]
mov word [esp + 0x7c], ax
mov word [esp + 0xcc], ax
lea eax, [esp + 0x74]
push eax
call fcn.1001fe5c
push ecx
push ecx
lea eax, [esp + 0xd4]
mov byte [esp + 0x144], 5
push eax
lea ecx, [esp + 0x90]
call fcn.1003ee3c
push 0
push ebx
lea ecx, [esp + 0xd4]
mov byte [esp + 0x144], 4
call fcn.100021c8
xor eax, eax
lea edi, [esp + 0x74]
cmp dword [esp + 0x98], 8
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x84]
cmovae eax, dword [esp + 0x84]
mov edi, 0x3fec
xor ecx, ecx
push ecx
push 0x80
push 2
push ecx
push ecx
push 0x40000000
push eax
push edi
push 0x6d91
call fcn.10030758
pop ecx
pop ecx
call eax
mov esi, eax
cmp esi, 0xffffffff
je 0x1003d983
push 0
lea eax, [esp + 0xe8]
push eax
push dword [esp + 0x4c]
mov eax, dword [ebp + 0xc]
push dword [eax]
push esi
push edi
push 0x5844
call fcn.10030758
pop ecx
pop ecx
call eax
push esi
test eax, eax
push edi
push 0x2794
setne bl
call fcn.10030758
pop ecx
pop ecx
call eax
test bl, bl
jne 0x1003d9cc
xor ebx, ebx
inc ebx
xor esi, esi
lea ecx, [esp + 0xe8]
push esi
push ebx
call fcn.100021c8
push esi
push ebx
lea ecx, [esp + 0x8c]
mov byte [esp + 0x144], bl
call fcn.100021c8
mov edi, dword [esp + 0xc]
inc edi
mov dword [esp + 0xc], edi
cmp edi, 0x12c
jb 0x1003d7d0
mov ecx, dword [esp + 0x30]
mov dword [ecx], 2
jmp 0x1003dcab
mov dword [esp + 0x4c], 0x2097
xor ebx, ebx
cmp dword [esp + 0x4c], 0x2107
jle 0x1003da45
xor edi, edi
inc ebx
xor esi, esi
xor eax, eax
mov dword [esp + 0xc], eax
lea ecx, [eax + esi]
mov eax, edi
sar eax, cl
lea ecx, [esp + 0x118]
cdq
push edx
push eax
call fcn.10001a75
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1003da0b
mov eax, dword [eax]
push eax
call fcn.10046d04
pop ecx
push 0
push ebx
lea ecx, [esp + 0x120]
call fcn.1000205c
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
cmp eax, 0x1c75
jl 0x1003d9eb
inc esi
cmp esi, 0x6d66
jl 0x1003d9e5
inc edi
cmp edi, 0x6152
jl 0x1003d9e3
jmp 0x1003da46
inc ebx
cmp dword [esp + 0x4c], 0x1e13
jge 0x1003da5b
push str.obrr_oyp_cnamodg_urn_bluui_tdv_wbsp_qst_ndoah_jnw_zerahga_fvwb
call fcn.10046d04
pop ecx
push 0x22
pop eax
mov dword [esp + 0x13c], 4
xor ecx, ecx
push 2
mov word [esp + 0x14], 0xb900
mov byte [esp + 0x16], bl
mov byte [esp + 0x17], 0x56
mov word [esp + 0x18], ax
pop esi
mov dword [esp + 0xc], ecx
cmp esi, 2
jne 0x1003da94
push esi
pop ecx
mov dword [esp + 0xc], ecx
jmp 0x1003dae5
movzx edx, byte [esp + esi + 0x11]
mov eax, esi
sub eax, ecx
push ebx
push 0x3e48
push 0x47fa
movzx eax, byte [esp + eax + 0x1a]
push 0x16b
push 0x1c1d
push 0x547f
movzx eax, word [esp + eax*2 + 0x2c]
mov ecx, eax
and eax, edx
or ecx, edx
mov dl, bl
sub ecx, eax
movzx eax, byte [esp + esi + 0x28]
mov word [esp + eax*2 + 0x2c], cx
lea ecx, [esp + 0x24]
call fcn.1003d0cf
mov ecx, dword [esp + 0x24]
add esp, 0x18
add esi, 2
cmp esi, 4
jb 0x1003da87
xor eax, eax
lea ecx, [esp + 0x9c]
and dword [esp + 0xac], eax
push 7
mov word [esp + 0x1a], ax
pop edi
mov word [esp + 0x9c], ax
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0xb4], edi
call fcn.1001fe5c
push ebx
lea eax, [esp + 0x88]
mov byte [esp + 0x140], 8
and dword [esp + 0x18], 0
mov edx, 0x6759
push eax
push 0x6f35
push ebx
push 0x1d0a
lea eax, [esp + 0xb0]
mov ecx, 0x564d
push 0xf22
push eax
call fcn.1003d41b
add esp, 0x1c
mov dword [esp + 0x18], 0xd002202
mov byte [esp + 0x1c], bl
xor ecx, ecx
mov byte [esp + 0x1d], 2
mov byte [esp + 0x1e], bl
push 0x2f
pop eax
push 2
mov word [esp + 0x23], 0x357
mov byte [esp + 0x25], 0x73
mov word [esp + 0x70], ax
pop esi
cmp esi, 6
jne 0x1003db96
push 2
pop ecx
jmp 0x1003dbbd
movzx edx, byte [esp + esi + 0x19]
mov eax, esi
sub eax, ecx
movzx eax, byte [esp + eax + 0x16]
movzx eax, word [esp + eax*2 + 0x68]
mov ecx, eax
and eax, edx
or ecx, edx
sub ecx, eax
movzx eax, byte [esp + esi + 0x18]
mov word [esp + eax*2 + 0x68], cx
xor ecx, ecx
add esi, 2
cmp esi, 0xa
jb 0x1003db8c
xor eax, eax
mov dword [esp + 0xc8], edi
and dword [esp + 0xc4], eax
lea ecx, [esp + 0xb4]
mov word [esp + 0x70], ax
mov word [esp + 0xb4], ax
lea eax, [esp + 0x68]
push eax
call fcn.1001fe5c
push ecx
push ecx
lea eax, [esp + 0xbc]
mov byte [esp + 0x144], 9
push eax
lea ecx, [esp + 0xa8]
call fcn.1003ee3c
xor esi, esi
mov byte [esp + 0x13c], 8
push esi
push ebx
lea ecx, [esp + 0xbc]
call fcn.100021c8
xor eax, eax
lea edi, [esp + 0x68]
stosd dword es:[edi], eax
lea edx, [esp + 0x50]
lea ecx, [esp + 0x9c]
stosd dword es:[edi], eax
stosw word es:[edi], ax
call fcn.1003bf85
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
mov dword [esp + 0x30], 0x41ae
cmp dword [esp + 0x30], 0x44fb
jle 0x1003dc81
mov edi, esi
mov ebx, 0x15ed
mov eax, edi
mov ecx, 0x1007ad38
cdq
push edx
push eax
call fcn.10001b82
dec edi
dec ebx
jne 0x1003dc62
inc esi
cmp esi, 0x7fef
jl 0x1003dc5b
inc ebx
xor esi, esi
push esi
push ebx
lea ecx, [esp + 0xa4]
call fcn.100021c8
push esi
push ebx
lea ecx, [esp + 0xf0]
call fcn.100021c8
push esi
push ebx
lea ecx, [esp + 0x8c]
call fcn.100021c8
push esi
push ebx
lea ecx, [esp + 0x58]
call fcn.100021c8
lea ecx, [esp + 0x38]
call fcn.1001444d
jmp 0x1003dce9
mov dword [ecx], 1
jmp 0x1003dce9
mov edx, dword [ebp + 0x2c]
xor ebx, ebx
inc ebx
mov dword [edx], 0
cmp dword [edx], ebx
jge 0x1003dce9
mov esi, dword [ebp + 0x20]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], ebx
inc dword [edx]
cmp dword [edx], ebx
jl 0x1003dcdc
mov ecx, dword [esp + 0x134]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret