Function at 0x100312df
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10061ab3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa0
push ebx
push esi
mov dword [esp + 0x30], edx
xor ebx, ebx
push edi
mov dword [esp + 0x50], 0xf8d9a2b8
mov edi, ecx
mov dword [esp + 0x10], ebx
jmp 0x1003132c
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x94], 0xfffffffe
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10031319
push 2
mov dword [esp + 0x14], ebx
pop esi
jmp 0x1003134c
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x38], 0xe83c7730
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1003133c
mov dword [esp + 0x3c], ebx
jmp 0x100313f3
mov dword [esp + 0x14], 0xccbad86e
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], ebx
jl 0x100313e2
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x1c], ebx
jmp 0x100313d6
mov dword [esp + 0x20], 0xd42ca8cd
mov dword [esp + 0x10], 0x2ba29f58
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x94]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x94]
mov dword [esp + 0x10], 0x2c9ebf49
mov dword [esp + 0x10], ebx
jmp 0x100313cc
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x100313c8
push ebx
push ebx
push 0x1258
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jle 0x100313af
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jle 0x10031377
dec dword [esp + 0x14]
jns 0x1003136d
mov byte [esp + 0x27], bl
lea ecx, [esp + 0x27]
call fcn.10030a8a
inc dword [esp + 0x3c]
cmp dword [esp + 0x3c], esi
jle 0x1003135b
lea ecx, [esp + 0x50]
call fcn.10030d44
push 1
lea ecx, [esp + 0x7c]
call fcn.1000ffa3
mov dword [esp + 0x20], 0xb165
mov dword [esp + 0x20], 0xc41fd9d0
mov dword [esp + 0x14], ebx
jmp 0x1003143a
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
mov dword [eax + ecx*4], 0x1928c176
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x10031427
mov eax, dword [esp + 0x78]
lea ecx, [esp + 0x78]
mov dword [eax], ebx
call fcn.10010025
cmp dword [edi + 0x10], ebx
jne 0x1003145c
xor al, al
jmp 0x1003177d
mov eax, 0xe91a049f
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x10], 4
mov dword [esp + 0x14], 0xffff
mov dword [esp + 0x10], ebx
jmp 0x1003149a
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x10031496
call fcn.10030f80
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jle 0x10031487
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], 1
mov dword [eax], ebx
cmp dword [edi + 0x14], 0x10
jb 0x100314e9
mov esi, dword [edi]
jmp 0x100314eb
mov esi, edi
cmp dword [edi + 0x14], 0x10
push 0xfffffffffffffff6
pop edx
jb 0x100314f8
mov ecx, dword [edi]
jmp 0x100314fa
mov ecx, edi
mov eax, dword [edi + 0x10]
add eax, ecx
cmp esi, eax
je 0x100316e1
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x10], 0x964a53aa
mov dword [esp + 0x20], 6
mov dword [esp + 0x10], ebx
jmp 0x1003154c
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x84], 0xfffffffd
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x10031539
mov dword [esp + 0x10], ebx
jmp 0x100315a0
push 1
lea ecx, [esp + 0x64]
call fcn.1000ffa3
mov dword [esp + 0x14], ebx
jmp 0x1003157a
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x60]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x1003156a
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x60]
or dword [esp + 0xb4], 0xffffffff
mov dword [eax], 0xfffffff3
call fcn.10010025
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffffd
jg 0x10031559
mov al, byte [esi]
cmp al, 0x30
jl 0x100315c8
cmp al, 0x39
jg 0x100315c8
mov edx, dword [esp + 0x34]
movsx eax, al
imul ecx, dword [edx], 0xa
add ecx, 0xffffffd0
add eax, ecx
inc esi
mov dword [edx], eax
jmp 0x100314eb
push 0x2c2c
push ebx
push 0x3c90
lea eax, [esp + 0x40]
push eax
push 0x51c4
call fcn.10032bd6
add esp, 0x14
mov dword [esp + 0x14], 8
xor esi, esi
lea ecx, [esp + 0x6c]
inc esi
mov dword [esp + 0x10], esi
push 2
call fcn.1000ffa3
mov dword [esp + 0xb4], 3
lea edx, [esp + 0x6c]
mov dword [esp + 0x20], 0x300d3b51
lea ecx, [esp + 0x2c]
call fcn.10030f8c
mov dword [esp + 0x2c], ebx
jmp 0x10031638
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0xa0], 0xfffffffe
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], 2
jl 0x10031625
mov ecx, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x10]
cmp ecx, eax
mov eax, dword [esp + 0x10]
setge dl
sub eax, edx
cmp dword [esp + 0x10], eax
je 0x10031660
cmp dword [esp + 0x10], ebx
je 0x10031662
mov ebx, esi
xor ecx, ecx
mov dword [esp + 0x14], 0x1b552bf3
mov eax, dword [esp + 0x10]
cmp ebx, 0x5cd3860a
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x10]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x14]
setge cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x10]
setg dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [esp + 0x10]
setl bl
xor ecx, ecx
cmp ebx, eax
setle cl
xor edx, edx
mov dword [esp + 0x10], ecx
inc edx
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
mov dword [eax], edx
mov eax, dword [esp + 0xa4]
cmp eax, edx
setle cl
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x6c]
call fcn.10010025
jmp 0x10031455
mov dword [esp + 0x58], 4
mov dword [esp + 0x54], ebx
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x28], 0xe3d1aa12
mov dword [esp + 0x1c], 0x8a6e
mov dword [esp + 0x14], ebx
jmp 0x1003171b
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x5c], 0xccae
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x1003170b
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x34]
push eax
lea edx, [esp + 0x60]
lea ecx, [esp + 0x30]
call fcn.1003125a
pop ecx
mov dword [esp + 0x2c], ebx
pop ecx
cmp dword [esp + 0x28], ebx
jl 0x1003177b
mov edx, 0x76cc
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], 0xf3bd791f
cmp dword [esp + 0x20], ebx
jne 0x1003177b
mov eax, dword [esp + 0x28]
mov dword [esp + eax*4 + 0x5c], edx
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x30]
mov dword [esp + 0x14], ecx
dec dword [esp + 0x28]
jns 0x1003174a
mov al, 1
mov ecx, dword [esp + 0xac]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret