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

Disassembly:
sub esp, 0x60
push ebp
push esi
mov esi, dword [esp + 0x6c]
xor ebp, ebp
cmp si, 0x400
push edi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x58], ebp
jne 0x30029e9c
call dword [fcn.300012c4]
jmp 0x30029ea9
cmp si, 0x800
jne 0x30029ea9
call dword [fcn.30001220]
push esi
call fcn.30026af9
mov edi, eax
cmp edi, ebp
mov dword [esp + 0x3c], edi
je 0x3002aa08
cmp edi, str.GetLengthSid
je 0x3002aa08
push ebx
push esi
call fcn.30026b6a
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
mov ebx, eax
mov eax, dword [esp + 0x78]
and eax, 0xbfffffff
cmp ebx, ebp
mov dword [esp + 0x48], ebx
je 0x3002a9d0
cmp dword [ebx + 0x1c], ebp
jne 0x3002a9d0
cmp ecx, 0xffffffff
jg 0x3002a9d0
cmp edx, 0xffffffff
jg 0x3002a9da
cmp eax, 1
ja 0x3002a9d0
test esi, 0xfff00000
jne 0x3002a9bc
mov edi, dword [esp + 0x7c]
cmp edi, ebp
mov edx, dword [esp + 0x84]
mov dword [esp + 0x10], edi
mov dword [esp + 0x78], edx
je 0x3002a9bc
cmp edx, ebp
je 0x3002a9bc
movzx ecx, word [edi]
cmp cx, word [edx]
jne 0x3002a011
movzx ecx, cx
mov edi, edi
cmp cx, bp
je 0x3002a009
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
jne 0x3002a009
cmp cx, bp
je 0x3002a009
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
jne 0x3002a009
cmp cx, bp
je 0x3002a009
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
jne 0x3002a009
cmp cx, bp
je 0x3002a009
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
jne 0x3002a009
cmp cx, bp
je 0x3002a009
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
jne 0x3002a009
cmp cx, bp
je 0x3002a009
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
jne 0x3002a009
cmp cx, bp
je 0x3002a009
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
jne 0x3002a009
cmp cx, bp
je 0x3002a009
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
je 0x30029f59
mov dword [esp + 0x10], edi
mov dword [esp + 0x78], edx
mov cx, word [edi]
cmp cx, word [edx]
je 0x3002a970
neg eax
sbb eax, eax
and eax, 0xe8000000
add eax, 0xffffffff
mov dword [esp + 0x50], eax
xor eax, eax
cmp dword [ebx + 0x18], ebp
mov dword [esp + 0x44], ebp
setne al
mov dword [esp + 0x38], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x60], ebp
add eax, 1
or eax, 4
mov dword [esp + 0x20], eax
movzx eax, cx
cmp ax, bp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x74], ebp
je 0x3002a918
mov edx, dword [esp + 0x78]
movzx esi, word [edx]
xor ebp, ebp
cmp si, bp
je 0x3002a913
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x40]
push ebx
push ebp
lea edx, [esp + 0x24]
push edx
push eax
call fcn.300280e7
push ebx
push ebp
lea eax, [esp + 0x20]
push eax
push esi
call fcn.300280e7
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x18]
and ebp, eax
and ebx, eax
cmp ebp, ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], ebx
je 0x3002a8a9
mov ax, bp
movzx ecx, ax
mov dword [esp + 0x2c], ecx
mov cx, word [esp + 0x18]
mov edx, ebp
movzx esi, cx
shr edx, 8
shr ebx, 8
cmp ax, cx
mov byte [esp + 0x80], dl
mov byte [esp + 0x88], bl
mov dword [esp + 0x30], esi
jne 0x3002a0fd
cmp dl, 3
jne 0x3002a7cb
xor eax, eax
test dl, dl
mov dword [esp + 0x3c], eax
mov ecx, 2
mov esi, 1
jne 0x3002a11d
add edi, ecx
mov eax, esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x3c], eax
test bl, bl
jne 0x3002a12a
add dword [esp + 0x78], ecx
jmp 0x3002a8ed
test eax, eax
jne 0x3002a8ed
movzx eax, dl
add eax, 0xffffffff
cmp eax, 5
ja 0x3002a3f2
jmp dword [eax*4 + 0x30029e38]
movzx eax, bl
add eax, 0xffffffff
cmp eax, 5
ja 0x3002a7ab
jmp dword [eax*4 + 0x30029e50]
cmp dword [esp + 0x3c], 0
jne 0x3002a8e9
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
cmp cx, ax
jne 0x3002a901
mov edi, dword [esp + 0x10]
test byte [esp + 0x20], 3
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x78]
je 0x3002a87d
mov al, byte [esp + 0x1e]
mov bl, byte [esp + 0x1a]
cmp al, bl
mov byte [esp + 0x88], al
je 0x3002a87d
movzx eax, word [edi + 2]
test ax, ax
je 0x3002a82f
mov edi, edi
mov edx, dword [esp + 0x40]
push ebp
push edx
lea ecx, [esp + 0x54]
push ecx
push eax
call fcn.300280e7
cmp byte [esp + 0x4d], 1
jne 0x3002a82f
movzx eax, word [edi + 4]
mov dl, byte [esp + 0x4e]
add byte [esp + 0x88], dl
add edi, 2
test ax, ax
jne 0x3002a800
movzx eax, word [esi + 2]
test ax, ax
je 0x3002a860
mov ecx, dword [esp + 0x40]
push ebp
push ecx
lea edx, [esp + 0x54]
push edx
push eax
call fcn.300280e7
cmp byte [esp + 0x4d], 1
jne 0x3002a860
movzx eax, word [esi + 4]
add bl, byte [esp + 0x4e]
add esi, 2
test ax, ax
jne 0x3002a838
movzx eax, byte [esp + 0x88]
cmp al, bl
je 0x3002a87d
sbb eax, eax
and eax, 0xfffffffe
add eax, 3
and dword [esp + 0x20], 0xfffffffe
mov dword [esp + 0x38], eax
test byte [esp + 0x20], 4
je 0x3002a8ad
movzx eax, byte [esp + 0x1b]
mov cl, byte [esp + 0x1f]
and al, 0x3f
and cl, 0x3f
cmp cl, al
je 0x3002a8ad
sbb eax, eax
and eax, 0xfffffffe
add eax, 3
and dword [esp + 0x20], 0xfffffffb
mov dword [esp + 0x64], eax
jmp 0x3002a8ad
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x58]
xor ecx, ecx
cmp eax, ecx
je 0x3002a8c4
sub dword [esp + 0x54], 1
jne 0x3002a8c4
mov edi, eax
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x60]
cmp eax, ecx
je 0x3002a8d9
sub dword [esp + 0x5c], 1
jne 0x3002a8d9
mov esi, eax
mov dword [esp + 0x60], ecx
add edi, 2
add esi, 2
mov dword [esp + 0x10], edi
mov dword [esp + 0x78], esi
jmp 0x3002a8ed
mov edi, dword [esp + 0x10]
movzx eax, word [edi]
test ax, ax
jne 0x3002a06f
mov edx, dword [esp + 0x78]
xor ebp, ebp
jmp 0x3002a918
sbb eax, eax
and eax, 0xfffffffe
add eax, 3
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x60
ret 0x18
cmp word [edi], bp
jne 0x3002a981
cmp word [edx], bp
jne 0x3002a97f
mov eax, dword [esp + 0x38]
cmp eax, ebp
jne 0x3002a909
mov eax, dword [esp + 0x64]
cmp eax, ebp
jne 0x3002a909
cmp dword [esp + 0x74], ebp
je 0x3002a960
mov al, byte [esp + 0x74]
test al, al
jne 0x3002a953
mov al, byte [esp + 0x75]
test al, al
jne 0x3002a953
mov al, byte [esp + 0x76]
test al, al
jne 0x3002a953
mov al, byte [esp + 0x77]
test al, al
je 0x3002a960
pop ebx
pop edi
pop esi
movzx eax, al
pop ebp
add esp, 0x60
ret 0x18
mov eax, dword [esp + 0x28]
cmp eax, ebp
jne 0x3002a909
mov eax, dword [esp + 0x34]
cmp eax, ebp
jne 0x3002a909
pop ebx
pop edi
pop esi
mov eax, 2
pop ebp
add esp, 0x60
ret 0x18
mov edi, edx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x7c]
push eax
mov eax, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x48]
push eax
xor eax, eax
cmp word [edx], bp
push ecx
sete al
lea eax, [eax + eax + 1]
push eax
push edi
call fcn.300271c0
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x60
ret 0x18
push 0x57
call dword [fcn.30001210]
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x60
ret 0x18
cmp edx, 0xffffffff
jg 0x3002a9da
mov edx, 0xfffffffe
cmp ecx, 0xffffffff
jg 0x3002a9e4
mov ecx, 0xfffffffe
push edi
push edx
mov edx, dword [esp + 0x8c]
push edx
push ecx
mov ecx, dword [esp + 0x8c]
push ecx
push eax
push ebx
call fcn.300284dc
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x60
ret 0x18
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
push edx
mov edx, dword [esp + 0x7c]
push eax
mov eax, dword [esp + 0x7c]
push ecx
push edx
push eax
push esi
call dword [0x30001188]
pop edi
pop esi
pop ebp
add esp, 0x60
ret 0x18