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

Disassembly:
push 0xffffffffffffffff
push 0x3484ff21
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push ebp
push esi
push edi
mov eax, dword [0x3485dd14]
xor eax, esp
push eax
lea eax, [esp + 0x64]
mov dword fs:[0], eax
mov esi, dword [esp + 0x74]
mov eax, dword [esi + 8]
xor edi, edi
mov dword [esp + 0x14], 0xffffffff
mov eax, dword [eax + 0x34]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov ecx, 1
push edi
push edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x28], edi
call dword [sym.imp.OLEAUT32.dll_CreateErrorInfo]
mov eax, dword [esi + 8]
mov ebp, dword [sym.imp.kernel32.dll_EnterCriticalSection]
add eax, 0xf8
push eax
mov dword [esp + 0x50], eax
call ebp
mov ecx, dword [esi + 8]
mov eax, dword [ecx + 0x34]
add eax, 0x68
push eax
mov dword [esp + 0x70], edi
mov dword [esp + 0x4c], eax
call ebp
mov edx, dword [esi + 8]
push edx
mov byte [esp + 0x70], 1
call fcn.3481d9c8
mov ebx, eax
test ebx, ebx
jl 0x348230b7
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x3c]
shr eax, 4
and eax, 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x84]
test eax, eax
je 0x3481d593
mov dword [eax], edi
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x3481d5a4
mov dword [ecx], 0
mov ebx, dword [esp + 0x80]
test ebx, ebx
mov ebp, dword [esp + 0x7c]
jne 0x34822d8e
test ecx, ecx
je 0x34822db1
cmp dword [esp + 0x78], 0
jne 0x34822dce
test ebx, ebx
jne 0x34822deb
mov dword [esp + 0x18], 1
mov ecx, dword [esi + 8]
mov eax, dword [ecx + 0x3c]
test al, 0x20
je 0x34822dff
test al, 0x10
jne 0x3481d619
mov eax, ecx
or dword [eax + 0x3c], 0x100
mov edx, dword [esi + 8]
mov eax, dword [edx + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
push 0
push eax
call edx
mov ebx, eax
mov eax, dword [esi + 8]
and dword [eax + 0x3c], 0xfffffeff
test ebx, ebx
jl 0x34822e09
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x34]
mov eax, dword [ecx + 0x54]
mov eax, dword [eax + 0xa4]
lea edx, [esp + 0x20]
push edx
push 0x11c
mov ecx, eax
call fcn.3481f579
test eax, eax
jl 0x34822e10
mov edx, dword [esp + 0x20]
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x14]
push edx
push 0
lea eax, [esp + 0x48]
push eax
push ebp
lea edx, [esp + 0x40]
add ecx, 0xc
push edx
call fcn.34816aac
mov ebx, eax
test ebx, ebx
jl 0x348230b7
xor ebp, ebp
cmp dword [esp + 0x18], ebp
mov dword [esp + 0x2c], ebp
jbe 0x3481d817
mov ecx, dword [esi + 8]
add ecx, 0x54
call fcn.34816fbe
test eax, eax
jne 0x34822e1d
mov edx, dword [esi + 8]
mov eax, dword [edx + 0x34]
xor ebp, ebp
mov dword [eax + 8], ebp
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x74], ebp
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
lea ecx, [esp + 0x74]
push ecx
push 0xef
mov ecx, eax
or edi, 0x1000100
call fcn.3481e01a
cmp dword [esp + 0x74], ebp
jne 0x3481d6e7
mov edx, dword [esi + 8]
mov eax, dword [edx + 0x34]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0xa4]
lea ecx, [esp + 0x74]
push ecx
push 0x109
mov ecx, eax
call fcn.3481e01a
mov eax, dword [esp + 0x74]
sub eax, 2
jne 0x3481d6f6
or edi, 0x4000
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
lea edx, [esp + 0x74]
push edx
push 0x10c
mov ecx, eax
call fcn.3481e01a
cmp dword [esp + 0x74], ebp
jne 0x3481d736
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x34]
mov eax, dword [ecx + 0x54]
mov eax, dword [eax + 0xa4]
lea edx, [esp + 0x74]
push edx
push 0x10b
mov ecx, eax
call fcn.3481e01a
mov ecx, 1
cmp dword [esp + 0x74], ecx
ja 0x3481d747
or edi, 0x200000
mov eax, dword [esi + 8]
cmp dword [eax + 0x48], ecx
je 0x34822e4f
mov ecx, dword [eax + 0x58]
mov edx, dword [eax + 0x5c]
lea ebp, [esp + 0x14]
push ebp
mov ebp, dword [esp + 0x28]
push edi
push ecx
push edx
mov edx, dword [eax + 0x64]
mov eax, dword [esp + 0x38]
push edx
push eax
push ebp
call sub.acecore.dll_Ordinal_304
mov edi, eax
cmp edi, 0xfffffa17
jle 0x34822e7f
cmp edi, 0xfffffbe9
jle 0x34822ef0
cmp edi, 0xbd2
jg 0x34822fb7
je 0x3481d9a5
cmp edi, 0x458
jg 0x34822faf
cmp edi, 0x456
jge 0x34822f5d
cmp edi, 0xfffffc08
je case.0x34822ed3.3101
test edi, edi
jne case.0x34822ed3.3099
cmp dword [esp + 0x14], 0xffffffff
je 0x34822fa2
mov eax, 1
cmp dword [esp + 0x1c], eax
jne 0x3481d7ec
cmp dword [esp + 0x18], eax
ja 0x34822fe1
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x3481d802
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x34]
mov eax, dword [edx + 8]
add dword [ecx], eax
mov ebp, dword [esp + 0x2c]
add ebp, 1
cmp ebp, dword [esp + 0x18]
mov dword [esp + 0x2c], ebp
jb 0x3481d67b
mov ecx, dword [esp + 0x7c]
push ecx
push 0x34856b70
call fcn.3481f5f0
test eax, eax
mov eax, dword [esp + 0x14]
jne 0x3481d9ac
cmp eax, 0xffffffff
je 0x3481d9ac
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x88], 0
je 0x3481d9ba
test ecx, ecx
je 0x3481d9ba
push pe_nt_image_headers32
call fcn.3481f5da
add esp, 4
mov dword [esp + 0x80], eax
test eax, eax
mov byte [esp + 0x6c], 2
je 0x3481d9b3
mov edx, dword [esp + 0x78]
push edx
mov ecx, eax
call fcn.3481806b
mov ebp, eax
test ebp, ebp
mov byte [esp + 0x6c], 1
mov dword [esp + 0x3c], ebp
je 0x34823063
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x14]
add ecx, 0xc
mov edx, dword [esp + 0x30]
mov dword [ebp + 0x78], edx
je 0x3482306d
mov edx, dword [esp + 0x7c]
push edx
mov edx, dword [esp + 0x44]
push 0
mov eax, dword [esi + 8]
push 0
push 0
push 0
push 0
push 0
push edx
mov edx, dword [eax + 0x34]
push ecx
mov ecx, dword [esp + 0x38]
push ecx
push 0
push 0
push eax
push edx
push 0
push ebp
call fcn.3481a843
mov ebx, eax
test ebx, ebx
jl 0x3481d90c
cmp ebx, 0x40eda
je 0x34823077
mov dword [esp + 0x14], 0xffffffff
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x7c]
mov eax, dword [ebp]
mov eax, dword [eax]
push ecx
push edx
push ebp
call eax
mov ebx, eax
test edi, edi
jne 0x3482309d
mov eax, dword [esp + 0x44]
test ebx, ebx
jl 0x348230b2
jne 0x3481d92d
cmp dword [esp + 0x34], 1
je 0x348230d9
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 0x3c]
shr edx, 4
and edx, 1
cmp dword [esp + 0x38], edx
je 0x3481d969
mov eax, ecx
and dword [eax + 0x3c], 0xffffffef
mov ecx, dword [esi + 8]
add ecx, 0x54
call fcn.348171b1
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x64]
push ecx
mov ecx, dword [eax + 0x34]
call fcn.348171c1
mov edx, dword [esi + 8]
mov dword [edx + 0x64], 0xffffffff
test ebx, ebx
jl 0x348230e3
mov eax, dword [esp + 0x48]
test eax, eax
mov esi, dword [sym.imp.kernel32.dll_LeaveCriticalSection]
je 0x3481d982
push eax
call esi
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x3481d98d
push eax
call esi
mov eax, ebx
mov ecx, dword [esp + 0x64]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x18
xor edi, edi
jmp 0x3481d7cc
xor ecx, ecx
jmp 0x3481d83f
xor ebp, ebp
jmp 0x3481d884
cmp eax, 0xffffffff
jne 0x34823084
jmp 0x3481d90c
mov eax, dword [ebx + 4]
test eax, eax
jbe 0x34822d9a
cmp dword [ebx], 0
je 0x34822da7
cmp eax, 1
jbe 0x3481d5b7
test ecx, ecx
je 0x34822db1
mov ebx, 0x80070057
jmp 0x348230b7
push ebp
push 0x34856b70
call fcn.3481f5f0
test eax, eax
jne 0x3481d5bf
mov ebx, 0x80070057
jmp 0x348230b7
push ebp
push 0x3485c818
call fcn.3481f5f0
test eax, eax
jne 0x3481d5ca
mov ebx, 0x80040e22
jmp 0x348230b7
mov ebx, dword [ebx + 4]
test ebx, ebx
mov dword [esp + 0x18], ebx
je 0x3481d5d2
jmp 0x3481d5da
mov ebx, 0x80040e0c
jmp 0x348230b7
xor eax, eax
jmp 0x3481d918
mov dword [esp + 0x20], 0
jmp 0x3481d641
cmp dword [esp + 0x80], 0
je case.0x34822ed3.3084
mov ecx, dword [esp + 0x80]
mov eax, dword [esi + 8]
push ebp
push ecx
push eax
lea ecx, [eax + 0x54]
call fcn.3484dd31
mov ebx, eax
test ebx, ebx
jge 0x3481d68e
jmp 0x3481d90c
cmp dword [eax + 0x64], 0xffffffff
jne 0x3481d753
mov ecx, dword [eax + 0x58]
mov edx, dword [eax + 0x5c]
mov eax, dword [eax + 0x4c]
lea ebp, [esp + 0x14]
push ebp
mov ebp, dword [esp + 0x28]
push edi
push ecx
mov ecx, dword [esp + 0x34]
push edx
push eax
push ecx
push ebp
call sub.acecore.dll_Ordinal_158
jmp 0x3481d774
je case.0x34822ed3.3072
cmp edi, 0xfffff3e2
jg 0x34822eb3
cmp edi, 0xfffff3e1
jge case.0x34822ed3.3072
cmp edi, 0xfffff117
je 0x34822f3d
cmp edi, 0xfffff254
jne case.0x34822ed3.3099
mov ebx, 0x80040e14
jmp 0x3481d90c
cmp edi, 0xfffff88d
jg 0x34822eda
je 0x34822ee6
lea eax, [edi + 0xc1d]
cmp eax, 0x5d
ja case.0x34822ed3.3099
movzx ecx, byte [eax + 0x3482313c]
jmp dword [ecx*4 + 0x34823128]
cmp edi, 0xfffff8ef
jne case.0x34822ed3.3099
mov ebx, 0x80040e09
jmp 0x3481d90c
je 0x34823032
cmp edi, 0xfffffade
jg 0x34822f1d
je case.0x34822ed3.3072
lea eax, [edi + 0x5e4]
cmp eax, 0x68
ja case.0x34822ed3.3099
movzx edx, byte [eax + 0x348231a8]
jmp dword [edx*4 + 0x3482319c]
cmp edi, 0xfffffae9
jg 0x34822f47
cmp edi, 0xfffffae8
jge case.0x34822ed3.3072
cmp edi, 0xfffffae7
jne case.0x34822ed3.3099
mov ebx, 0x80040e37
jmp 0x3482309d
cmp edi, 0xfffffbe8
jne case.0x34822ed3.3099
mov ebx, 0x80040e21
jmp 0x3481d90c
jne 0x34822f6c
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x34]
call fcn.3482c4c1
jmp 0x34822f83
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x34]
xor edx, edx
cmp edi, 0x457
sete dl
push edx
call fcn.3482c972
mov ebx, eax
test ebx, ebx
jl 0x3481d90c
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0xffffffff
jmp 0x3481d9a5
mov dword [esp + 0x1c], 0
jmp 0x3481d7ec
cmp edi, 0x581
jmp 0x34822fce
mov eax, edi
sub eax, 0xbd8
je 0x3481d9a5
sub eax, 0x1d
je 0x34822f8d
sub eax, 0x79e
je 0x3481d802
test edi, edi
jg 0x3481d802
jmp 0x3482306d
mov dword [esp + 0x18], eax
jmp 0x3481d7ec
mov ebx, 0x80040e10
jmp 0x3481d90c
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x14
lea eax, [esp + 0x70]
push eax
push ebp
call sub.acecore.dll_Ordinal_138
test eax, eax
jl case.0x34822ed3.3072
cmp edi, 0xfffff3e4
je 0x3482304e
cmp edi, 0xfffff42a
jne case.0x34822ed3.3072
cmp dword [esp + 0x60], 6
jne 0x34823039
mov ebx, 0x80040e57
jmp 0x3482309d
cmp dword [esp + 0x54], 0xffffdfd1
jne case.0x34822ed3.3072
mov ebx, 0x80040e07
jmp 0x3482309d
cmp dword [esp + 0x60], 0x2711
jne case.0x34822ed3.3072
mov ebx, 0x80040e07
jmp 0x3482309d
mov ebx, 0x8007000e
jmp 0x3481d90c
mov ebx, 0x80004005
jmp 0x3481d90c
mov dword [esp + 0x34], 1
jmp 0x3481d8f5
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x34]
push eax
call fcn.348171c1
mov dword [esp + 0x14], 0xffffffff
jmp 0x3481d90c
mov edx, dword [esi + 8]
mov eax, dword [edx + 0x34]
push 0x3485649c
push edi
push ebx
push eax
call fcn.3481319b
jmp 0x348230d2
cmp eax, 1
jne 0x348230d2
mov ecx, dword [esi + 8]
mov eax, dword [ecx + 0x34]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
push 0
push 0x3485649c
push ebx
push edx
push eax
call fcn.3481cfc1
test ebx, ebx
jmp 0x3481d920
mov ebx, 0x40eda
jmp 0x3481d92d
mov eax, dword [esp + 0x88]
test eax, eax
je 0x348230f4
mov dword [eax], 0
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x34823105
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 1
call edx
mov eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x3481d971
push eax
mov eax, dword [esp + 0x28]
push eax
call sub.acecore.dll_Ordinal_108
jmp 0x3481d971