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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x582e7a
sub esp, 0x48
movzx edx, byte [esp + 0x74]
test dl, dl
je 0x582e66
mov eax, 6
cmp al, 0x20
sbb ebx, ebx
mov ecx, eax
mov ebp, 1
shl ebp, cl
and ebp, ebx
mov dword [esp + 0x38], ebp
mov ebx, ebp
add ebp, 0xffffffff
mov dword [esp + 0x24], ebp
lea ecx, [eax - 0x20]
cmp cl, 0x20
sbb esi, esi
mov edi, ecx
neg ecx
mov byte [esp + 0x23], cl
cmp cl, 0x20
mov eax, edx
sbb edx, edx
mov ecx, edi
mov ebp, 1
shl ebp, cl
and ebp, esi
movzx ecx, byte [esp + 0x23]
mov esi, 1
shr esi, cl
and esi, edx
or esi, ebp
add ebx, 0xffffffff
mov ebx, esi
adc esi, 0xffffffff
mov ebp, dword [esp + 0x70]
cmp esi, ebp
xchg edi, ebx
seta bl
xchg edi, ebx
mov ecx, ebx
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x6c]
cmp ebx, edx
seta bl
cmp esi, ebp
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, ebx
or esi, edi
xchg esi, eax
test al, al
xchg esi, eax
jne 0x582e05
mov ebx, dword [esp + 0x50]
lea esi, [ebx + 1]
mov edi, dword [esp + 0x54]
cmp esi, edi
ja 0x582db2
mov byte [esp + 0x3c], al
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x44], eax
movzx eax, byte [esp + 0x3c]
mov ebp, dword [esp + 0x38]
sub edx, ebp
mov dword [esp + 0x34], edx
add edx, 1
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x44]
mov byte [ebp + ebx], dl
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x38]
sub edx, ebx
mov edx, dword [esp + 0x70]
sbb edx, ecx
mov ebx, dword [esp + 0x34]
add ebx, 1
adc edx, 0
mov ebx, dword [esp + 0x28]
jmp 0x582c6f
mov ebp, ecx
and ecx, 0x7f
or ecx, 0x80
mov byte [ebx + esi], cl
shr ebp, 7
mov ecx, dword [esp + 0x2c]
mov esi, ecx
shl ecx, 0x19
or ecx, ebp
shr esi, 7
mov ebp, ebx
mov ebx, ecx
mov ecx, edx
mov edx, esi
mov esi, ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x44], ebp
mov dword [esp + 0x30], esi
cmp ebx, 0x80
mov ecx, ebx
setae bl
test edx, edx
sete dl
xchg ebp, ebx
seta bl
xchg ebp, ebx
and ebx, edx
or ebx, ebp
test bl, bl
je 0x582cee
lea edx, [esi + 1]
cmp edx, edi
ja 0x582cab
mov ebx, dword [esp + 0x44]
jmp 0x582c46
lea eax, [0x5db380]
mov dword [esp], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edx
call fcn.00445150
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
lea edx, [eax + 1]
movzx eax, byte [esp + 0x74]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
jmp 0x582c46
lea edx, [esi + 1]
cmp edx, edi
ja 0x582d6f
mov ebx, dword [esp + 0x44]
mov byte [ebx + esi], cl
movzx ebp, byte [esp + 0x68]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x582d60
mov eax, 0x10
mov ebp, dword [esp + 0x50]
cmp ebp, edx
jae 0x582e70
movzx ecx, byte [ebx + ebp]
or ecx, eax
mov byte [ebx + ebp], cl
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.00582e90
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edx
add esp, 0x48
ret
test al, al
je 0x582d6b
mov eax, 0x40
jmp 0x582d0c
xor eax, eax
jmp 0x582d0c
lea eax, [0x5db380]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edx
call fcn.00445150
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
lea edx, [eax + 1]
movzx eax, byte [esp + 0x74]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
jmp 0x582cf9
mov dword [esp + 0x34], ecx
lea eax, [0x5db380]
mov dword [esp], eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], esi
call fcn.00445150
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
lea esi, [ecx + 1]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x44], eax
movzx eax, byte [esp + 0x74]
jmp 0x582c09
mov ebx, dword [esp + 0x50]
lea ebp, [ebx + 1]
mov esi, dword [esp + 0x54]
cmp ebp, esi
ja 0x582e26
mov ecx, dword [esp + 0x4c]
mov byte [ecx + ebx], dl
mov edx, ebp
mov ebx, ecx
mov edi, esi
jmp 0x582cfc
lea eax, [0x5db380]
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
call fcn.00445150
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea ebp, [eax + 1]
movzx eax, byte [esp + 0x74]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x50]
jmp 0x582e18
mov eax, 4
jmp 0x582b5b
mov eax, ebp
mov ecx, edx
call fcn.0045de90
nop
call fcn.0045c8b0
jmp fcn.00582b30