Function at 0x100380f0
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 0x10038137
test eax, eax
je 0x1003858c
mov edi, edx
jmp 0x1003858c
test eax, eax
jne 0x10038147
test esi, esi
je 0x10038147
or edi, 0xffffffff
jmp 0x1003858c
lea ecx, [esp + 0x58]
push ecx
push eax
mov ecx, 0x10053c48
call fcn.10039000
test byte [esp + 0x58], 8
mov dword [esp + 0x28], eax
jne 0x10038196
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.10043dc0
test eax, eax
jns 0x10038196
push 1
push eax
lea ecx, [esp + 0x60]
call fcn.1001c540
jmp case.default.0x10038551
lea eax, [esp + 0x58]
mov ecx, 0x10053c48
push eax
push dword [esp + 0x3c]
call fcn.10039000
test byte [esp + 0x58], 8
mov dword [esp + 0x34], eax
jne case.default.0x10038551
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.10043dc0
test eax, eax
js case.default.0x10038551
mov edx, dword [ebp + 8]
cmp edx, 0x100
jle 0x10038258
mov ecx, dword [ebp + 4]
add ebx, 0x30001
shr ecx, 1
test edx, 0xa0000000
jne 0x1003822e
test ecx, ecx
jle 0x10038211
mov eax, dword [ebp]
cmp byte [eax + ecx - 1], 0x20
jne 0x10038211
dec ecx
test ecx, ecx
jg 0x10038205
mov eax, dword [esp + 0x70]
test esi, esi
jle 0x10038232
lea esp, [esp]
cmp byte [eax + esi - 1], 0x20
jne 0x10038232
dec esi
test esi, esi
jg 0x10038220
jmp 0x10038232
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 0x10038251
lea edi, [eax - 2]
jmp case.default.0x10038551
xor edi, edi
jmp case.default.0x10038551
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 0x100382ac
test esi, esi
je 0x1003829e
mov esi, ebp
lea esp, [esp]
cmp byte [esi + ecx - 1], 0x20
jne 0x1003829a
dec ecx
jne 0x10038290
mov esi, dword [esp + 0x44]
test ebx, ebx
je 0x100382ac
cmp byte [eax + edx - 1], 0x20
jne 0x100382ac
dec edx
jne 0x100382a2
test ecx, ecx
je 0x100382f5
test edx, edx
je 0x100382f5
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 0x100382f5
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 0x100382f5
cmp byte [esp + 0x16], al
jne 0x10038399
inc dword [esp + 0x24]
inc ebp
dec edx
dec ecx
jne 0x100382b0
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.10032c70
cmp dword [esp + 0x78], 1
mov dword [esp + 0x54], eax
je 0x10038340
test esi, esi
je 0x10038332
mov eax, dword [esp + 0x28]
cmp byte [eax + esi - 1], 0x20
jne 0x10038332
dec esi
jne 0x10038328
test ebx, ebx
je 0x10038340
cmp byte [ebx + ebp - 1], 0x20
jne 0x10038340
dec ebx
jne 0x10038336
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 0x10038370
test ebp, ebp
je 0x10038548
test ebx, ebx
jne 0x1003837c
test ecx, ecx
je 0x10038548
test ebp, ebp
je 0x100383b9
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 0x100383da
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.0x10038551
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 0x10038401
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 0x10038422
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 0x10038490
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.10038bc0
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 0x100385bc
mov ecx, dword [esp + 0x18]
mov al, byte [esp + 0x16]
cmp al, 0xff
jne 0x100384f9
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.10038bc0
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 0x100385bc
mov ah, byte [esp + 0x13]
cmp ah, al
jb 0x10038569
ja 0x100385d1
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x10038529
mov dl, byte [esp + 0x14]
mov dh, byte [esp + 0x15]
cmp dh, dl
jae 0x10038520
or eax, 0xffffffff
jmp 0x10038525
cmova eax, dword [esp + 0x44]
mov dword [esp + 0x40], eax
test ebp, ebp
jne 0x10038532
inc dword [esp + 0x20]
dec esi
mov edx, dword [esp + 0x30]
test ecx, ecx
jne 0x10038364
inc dword [esp + 0x24]
dec ebx
jmp 0x10038364
mov ecx, dword [esp + 0x78]
cmp ecx, 3
ja case.default.0x10038551
jmp dword [ecx*4 + 0x100385d8]
cmp esi, ebx
jb 0x10038569
mov edi, eax
cmova edi, dword [esp + 0x44]
jmp case.default.0x10038551
cmp ebx, esi
jbe 0x100385b6
or edi, 0xffffffff
push dword [esp + 0x28]
mov ecx, 0x10053c48
call fcn.10039750
push dword [esp + 0x34]
mov ecx, 0x10053c48
call fcn.10039750
mov edx, dword [esp + 0x58]
test edx, 0xfffffffe
je 0x1003859d
lea ecx, [esp + 0x58]
call fcn.1001c3c0
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.0x10038551
cmp ebx, esi
sbb edi, edi
neg edi
jmp case.default.0x10038551
push dword [esp + 0x74]
mov ecx, dword [esp + 0x4c]
push dword [esp + 0x74]
call fcn.10037fb0
mov edi, eax
jmp case.default.0x10038551
mov edi, 1
jmp case.default.0x10038551