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

Disassembly:
sub esp, 0x5c
push ebx
push ebp
mov ebp, ecx
mov edx, 1
push esi
mov esi, dword [esp + 0x70]
push edi
mov ebx, dword [ebp + 8]
xor edi, edi
mov eax, dword [ebp + 4]
and ebx, 0x80000000
mov dword [esp + 0x48], ebp
mov dword [esp + 0x58], edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x4c], eax
test esi, esi
jne 0x100381f7
test eax, eax
je 0x1003864c
mov edi, edx
jmp 0x1003864c
test eax, eax
jne 0x10038207
test esi, esi
je 0x10038207
or edi, 0xffffffff
jmp 0x1003864c
lea ecx, [esp + 0x58]
push ecx
push eax
mov ecx, 0x10053c48
call fcn.100390c0
test byte [esp + 0x58], 8
mov dword [esp + 0x28], eax
jne 0x10038256
push 0
push 0
lea ecx, [esp + 0x54]
push ecx
push eax
mov eax, dword [ebp + 4]
shr eax, 1
push eax
push dword [ebp]
movzx eax, word [ebp + 0xc]
push 0
push eax
call fcn.10043e80
test eax, eax
jns 0x10038256
push 1
push eax
lea ecx, [esp + 0x60]
call fcn.1001c550
jmp case.default.0x10038611
lea eax, [esp + 0x58]
mov ecx, 0x10053c48
push eax
push dword [esp + 0x3c]
call fcn.100390c0
test byte [esp + 0x58], 8
mov dword [esp + 0x34], eax
jne case.default.0x10038611
push 0
push 0
lea ecx, [esp + 0x40]
shr esi, 1
push ecx
push eax
movzx eax, word [ebp + 0xc]
push esi
push dword [esp + 0x84]
push 0
push eax
call fcn.10043e80
test eax, eax
js case.default.0x10038611
mov edx, dword [ebp + 8]
cmp edx, 0x100
jle 0x10038318
mov ecx, dword [ebp + 4]
add ebx, 0x30001
shr ecx, 1
test edx, 0xa0000000
jne 0x100382ee
test ecx, ecx
jle 0x100382d1
mov eax, dword [ebp]
cmp byte [eax + ecx - 1], 0x20
jne 0x100382d1
dec ecx
test ecx, ecx
jg 0x100382c5
mov eax, dword [esp + 0x70]
test esi, esi
jle 0x100382f2
lea esp, [esp]
cmp byte [eax + esi - 1], 0x20
jne 0x100382f2
dec esi
test esi, esi
jg 0x100382e0
jmp 0x100382f2
mov eax, dword [esp + 0x70]
push esi
push eax
push ecx
push dword [ebp]
and edx, 0xfffeff
push ebx
push edx
call sub.mswstr10.dll_Ordinal_1
test eax, eax
je 0x10038311
lea edi, [eax - 2]
jmp case.default.0x10038611
xor edi, edi
jmp case.default.0x10038611
cmp dword [esp + 0x78], 1
mov eax, dword [edx*4 + 0x100521b8]
mov esi, dword [esp + 0x4c]
mov ecx, esi
mov ebx, dword [esp + 0x38]
mov edx, ebx
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], esi
mov dword [esp + 0x24], eax
je 0x1003836c
test esi, esi
je 0x1003835e
mov esi, ebp
lea esp, [esp]
cmp byte [esi + ecx - 1], 0x20
jne 0x1003835a
dec ecx
jne 0x10038350
mov esi, dword [esp + 0x44]
test ebx, ebx
je 0x1003836c
cmp byte [eax + edx - 1], 0x20
jne 0x1003836c
dec edx
jne 0x10038362
test ecx, ecx
je 0x100383b5
test edx, edx
je 0x100383b5
mov edi, dword [esp + 0x1c]
movzx eax, byte [ebp]
mov al, byte [eax + edi]
mov edi, 0
mov byte [esp + 0x16], al
cmp al, 0xff
je 0x100383b5
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
movzx eax, byte [eax]
mov al, byte [eax + esi]
mov esi, dword [esp + 0x44]
cmp al, 0xff
je 0x100383b5
cmp byte [esp + 0x16], al
jne 0x10038459
inc dword [esp + 0x24]
inc ebp
dec edx
dec ecx
jne 0x10038370
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x17]
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x24], ebp
push dword [eax + 8]
call fcn.10032d20
cmp dword [esp + 0x78], 1
mov dword [esp + 0x54], eax
je 0x10038400
test esi, esi
je 0x100383f2
mov eax, dword [esp + 0x28]
cmp byte [eax + esi - 1], 0x20
jne 0x100383f2
dec esi
jne 0x100383e8
test ebx, ebx
je 0x10038400
cmp byte [ebx + ebp - 1], 0x20
jne 0x10038400
dec ebx
jne 0x100383f6
xor edx, edx
mov dword [esp + 0x44], 1
xor ebp, ebp
mov dword [esp + 0x30], edx
xor ecx, ecx
mov dword [esp + 0x2c], ebp
xor eax, eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x40], eax
test esi, esi
jne 0x10038430
test ebp, ebp
je 0x10038608
test ebx, ebx
jne 0x1003843c
test ecx, ecx
je 0x10038608
test ebp, ebp
je 0x10038479
mov ah, byte [edx]
mov al, byte [edx + 1]
add edx, 2
dec ebp
mov dword [esp + 0x30], edx
mov byte [esp + 0x13], ah
mov dh, ah
mov dword [esp + 0x2c], ebp
jmp 0x1003849a
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
movzx ecx, byte [eax]
movzx eax, byte [ebp]
mov al, byte [eax + edx]
cmp al, byte [ecx + edx]
sbb edi, edi
and edi, 0xfffffffe
inc edi
jmp case.default.0x10038611
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx eax, byte [eax]
mov dh, byte [eax + edx]
mov al, byte [eax + ecx + 0x100]
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x13], dh
mov byte [esp + 0x15], al
test ecx, ecx
je 0x100384c1
mov eax, dword [esp + 0x3c]
mov dl, byte [eax]
mov byte [esp + 0x16], dl
mov dl, byte [eax + 1]
add eax, 2
dec ecx
mov byte [esp + 0x14], dl
mov dword [esp + 0x3c], eax
mov dword [esp + 0x18], ecx
jmp 0x100384e2
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
movzx eax, byte [eax]
mov dl, byte [eax + ecx]
mov al, byte [eax + ecx + 0x100]
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x16], dl
mov byte [esp + 0x14], al
cmp dh, 0xff
jne 0x10038550
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x54]
inc eax
mov dword [esp + 0x30], eax
lea eax, [esi - 1]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x2c]
push eax
movzx eax, byte [esp + 0x19]
push dword [ecx + eax*4]
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.10038c80
mov ebp, dword [esp + 0x2c]
mov edx, eax
mov eax, dword [esp + 0x30]
dec ebp
mov esi, dword [esp + 0x50]
dec eax
mov dword [esp + 0x20], eax
inc esi
mov al, byte [edx]
mov cl, byte [edx + 1]
add edx, 2
mov byte [esp + 0x13], al
mov byte [esp + 0x15], cl
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ebp
test al, al
je 0x1003867c
mov ecx, dword [esp + 0x18]
mov al, byte [esp + 0x16]
cmp al, 0xff
jne 0x100385b9
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x54]
inc eax
mov dword [esp + 0x50], eax
lea eax, [ebx - 1]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x18]
push eax
movzx eax, byte [esp + 0x18]
push dword [ecx + eax*4]
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.10038c80
mov ebx, dword [esp + 0x3c]
mov edx, eax
mov eax, dword [esp + 0x50]
inc ebx
dec eax
mov dword [esp + 0x24], eax
mov cl, byte [edx + 1]
mov al, byte [edx]
add edx, 2
mov byte [esp + 0x14], cl
mov ecx, dword [esp + 0x18]
dec ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x18], ecx
test al, al
je 0x1003867c
mov ah, byte [esp + 0x13]
cmp ah, al
jb 0x10038629
ja 0x10038691
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x100385e9
mov dl, byte [esp + 0x14]
mov dh, byte [esp + 0x15]
cmp dh, dl
jae 0x100385e0
or eax, 0xffffffff
jmp 0x100385e5
cmova eax, dword [esp + 0x44]
mov dword [esp + 0x40], eax
test ebp, ebp
jne 0x100385f2
inc dword [esp + 0x20]
dec esi
mov edx, dword [esp + 0x30]
test ecx, ecx
jne 0x10038424
inc dword [esp + 0x24]
dec ebx
jmp 0x10038424
mov ecx, dword [esp + 0x78]
cmp ecx, 3
ja case.default.0x10038611
jmp dword [ecx*4 + 0x10038698]
cmp esi, ebx
jb 0x10038629
mov edi, eax
cmova edi, dword [esp + 0x44]
jmp case.default.0x10038611
cmp ebx, esi
jbe 0x10038676
or edi, 0xffffffff
push dword [esp + 0x28]
mov ecx, 0x10053c48
call fcn.10039810
push dword [esp + 0x34]
mov ecx, 0x10053c48
call fcn.10039810
mov edx, dword [esp + 0x58]
test edx, 0xfffffffe
je 0x1003865d
lea ecx, [esp + 0x58]
call fcn.1001c3d0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0xc
mov edi, dword [esp + 0x44]
cmp esi, ebx
cmovbe edi, eax
jmp case.default.0x10038611
cmp ebx, esi
sbb edi, edi
neg edi
jmp case.default.0x10038611
push dword [esp + 0x74]
mov ecx, dword [esp + 0x4c]
push dword [esp + 0x74]
call fcn.10038070
mov edi, eax
jmp case.default.0x10038611
mov edi, 1
jmp case.default.0x10038611