Function at 0x10030168
Capabilities:
Get session user name
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1005514f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb0
cmp byte [ebp + 0xc], 0
mov eax, ecx
push ebx
push esi
push edi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2c], eax
je 0x100302b1
mov dword [esp + 0x2c], 0x5e80
cmp dword [esp + 0x2c], 0x5ebf
push 0
pop ebx
jle 0x10030227
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
mov esi, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0x6540
mov edi, ebx
mov ecx, edi
mov eax, esi
shl eax, cl
lea ecx, [esp + 0xa0]
cdq
push edx
push eax
call fcn.10001311
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100301f0
mov eax, dword [eax]
push eax
call fcn.1003bcd0
pop ecx
push ebx
push 1
lea ecx, [esp + 0xa8]
call fcn.10001623
inc edi
cmp edi, 0xfa
jl 0x100301d1
dec esi
dec dword [esp + 0x10]
jne 0x100301cf
mov esi, dword [esp + 0x14]
inc esi
mov dword [esp + 0x14], esi
cmp esi, 0x28bc
jl 0x100301c3
cmp dword [esp + 0x2c], 0x5c48
jge 0x1003023c
push str.njiwmdd_htf_xjubym_imp_eiwtoib_lgvocn_zcrny
call fcn.1003bcd0
pop ecx
mov esi, dword [ebp + 0x24]
mov eax, dword [ebp + 8]
or dword [esp + 0xc4], 0xffffffff
mov dword [esi], ebx
cmp dword [eax], ebx
jle 0x1003054b
mov edi, dword [ebp + 0x20]
cmp dword [edi], ebx
jne 0x1003054b
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [esi]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + edx*4]
cmp eax, dword [ecx + edx*4]
jle 0x10030281
push ecx
push ecx
push edi
mov cl, 1
call fcn.10030042
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [esi]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + edx*4]
cmp eax, dword [ecx + edx*4]
jge 0x100302a1
push ecx
push ecx
mov ecx, edi
call fcn.10031517
pop ecx
pop ecx
mov ecx, dword [ebp + 8]
inc dword [esi]
mov eax, dword [esi]
cmp eax, dword [ecx]
jl 0x10030257
jmp 0x1003054b
xor ebx, ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov edi, dword [ebp + 0x10]
mov dword [esp + 0xc4], 2
cmp dword [edi + 0x10], ebx
je 0x10030536
push 0x2e
pop eax
push 2
mov ecx, ebx
mov dword [esp + 0x24], 0x7c029b00
mov byte [esp + 0x28], 0xbe
mov word [esp + 0x2c], ax
pop esi
mov dword [esp + 0x14], ecx
cmp esi, 2
jne 0x10030304
push 3
pop ecx
push ecx
mov dword [esp + 0x18], ecx
pop esi
jmp 0x10030356
movzx edx, byte [esp + esi + 0x21]
mov eax, esi
sub eax, ecx
push 0x6853
push 0x6f97
push 0x683e
movzx eax, byte [esp + eax + 0x2a]
push ebx
movzx eax, word [esp + eax*2 + 0x38]
mov ecx, eax
and eax, edx
or ecx, edx
mov edx, 0x2ff5
sub ecx, eax
movzx eax, byte [esp + esi + 0x30]
mov word [esp + eax*2 + 0x38], cx
lea eax, [esp + 0x24]
push eax
push 1
mov ecx, 0x2867
call fcn.1003005f
mov ecx, dword [esp + 0x2c]
add esp, 0x18
add esi, 2
cmp esi, 5
jb 0x100302f4
xor eax, eax
mov dword [esp + 0x78], 7
mov word [esp + 0x2a], ax
lea ecx, [esp + 0x64]
mov word [esp + 0x64], ax
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x78], ebx
call fcn.10014086
lea eax, [esp + 0x64]
mov byte [esp + 0xc4], 3
push eax
mov edx, edi
lea ecx, [esp + 0x34]
call fcn.1002f246
pop ecx
push ebx
push 1
lea ecx, [esp + 0x6c]
mov byte [esp + 0xcc], 5
call fcn.10003fdb
mov edi, dword [esp + 0x34]
mov eax, edi
mov esi, dword [esp + 0x30]
sub eax, esi
push 0x18
cdq
pop ecx
idiv ecx
mov dword [esp + 0x28], ebx
test eax, eax
jne 0x1003051d
push 0x2d
pop eax
push 2
mov ecx, ebx
mov dword [esp + 0x1c], 0xb102ce00
mov byte [esp + 0x20], 0x14
mov word [esp + 0x10], ax
pop esi
mov dword [esp + 0x10], ecx
cmp esi, 2
jne 0x100303fd
push 3
pop ecx
push ecx
mov dword [esp + 0x14], ecx
pop esi
jmp 0x10030433
movzx edx, byte [esp + esi + 0x19]
mov eax, esi
sub eax, ecx
movzx eax, byte [esp + eax + 0x16]
movzx eax, word [esp + eax*2 + 0xc]
mov ecx, eax
and eax, edx
or ecx, edx
sub ecx, eax
movzx eax, byte [esp + esi + 0x18]
mov word [esp + eax*2 + 0xc], cx
lea eax, [esp + 0x10]
push eax
mov cl, 1
call fcn.1002fc27
pop ecx
mov ecx, dword [esp + 0x10]
add esi, 2
cmp esi, 5
jb 0x100303ed
xor eax, eax
mov dword [esp + 0x60], 7
mov word [esp + 0xe], ax
lea ecx, [esp + 0x4c]
mov word [esp + 0x4c], ax
lea eax, [esp + 0xc]
push eax
mov dword [esp + 0x60], ebx
call fcn.10014086
mov edx, dword [ebp + 0x10]
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x80]
mov byte [esp + 0xc8], 6
call fcn.1002f246
pop ecx
mov esi, eax
lea eax, [esp + 0x30]
cmp eax, esi
je 0x100304ab
mov ecx, eax
call fcn.10033596
mov ecx, dword [esi]
mov dword [esp + 0x30], ecx
mov eax, dword [esi + 4]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x38], eax
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
lea ecx, [esp + 0x7c]
call fcn.10033596
push ebx
push 1
lea ecx, [esp + 0x54]
mov byte [esp + 0xcc], 5
call fcn.10003fdb
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp 0x1003051d
push esi
lea ecx, [esp + 0x8c]
call fcn.10003e3e
lea eax, [esp + 0x40]
mov byte [esp + 0xc4], 8
push eax
push ecx
push 1
lea edx, [esp + 0x94]
mov ecx, 0x4358
call fcn.1002fc50
add esp, 0xc
mov byte [esp + 0xc4], 5
lea ecx, [esp + 0x88]
push ebx
push 1
call fcn.10003fdb
add esi, 0x18
cmp esi, edi
jne 0x100304d2
lea ecx, [esp + 0x30]
mov byte [esp + 0xc4], 2
call fcn.10033596
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x40]
push ecx
mov ecx, eax
call fcn.10033414
lea ecx, [esp + 0x40]
call fcn.1003366e
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret