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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x583035
sub esp, 0x6c
mov edx, dword [esp + 0x70]
mov ebx, dword [edx]
mov ebp, dword [ebx + 8]
mov ebx, dword [ebx + 4]
lea esi, [ebp - 1]
test esi, esi
jl 0x582d42
mov ebx, dword [ebx + ebp*4 - 4]
nop
cmp ebx, 0x10000
jb 0x582d13
shr ebx, 0x10
mov eax, 0x10
jmp 0x582d15
xor eax, eax
cmp ebx, 0x100
jb 0x582d23
shr ebx, 8
add eax, 8
cmp ebx, 0x100
jae 0x583028
shl esi, 5
lea ecx, [0x6aa9e0]
movzx ebx, byte [ecx + ebx]
add eax, ebx
add eax, esi
jmp 0x582d4a
lea ecx, [0x6aa9e0]
xor eax, eax
lea ebx, [eax + 7]
sar ebx, 0x1f
shr ebx, 0x1d
lea eax, [eax + ebx + 7]
sar eax, 3
mov ebx, dword [esp + 0x88]
cmp ebx, eax
jne 0x582ff2
mov byte [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x14], eax
call fcn.00512f90
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
mov byte [esp + 0x5c], 0
mov byte [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
lea eax, [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
lea ecx, [esp + 0x5c]
mov dword [esp + 8], ecx
call fcn.005832b0
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [eax + 4]
lea ebx, [edx - 1]
test ebx, ebx
jl 0x582e70
mov edx, dword [eax + edx*4 - 4]
nop
cmp edx, 0x10000
jb 0x582e40
shr edx, 0x10
mov eax, 0x10
jmp 0x582e42
xor eax, eax
cmp edx, 0x100
jb 0x582e50
shr edx, 8
add eax, 8
cmp edx, 0x100
jae 0x58301c
shl ebx, 5
lea ebp, [0x6aa9e0]
movzx edx, byte [ebp + edx]
add edx, eax
add edx, ebx
jmp 0x582e78
lea ebp, [0x6aa9e0]
xor edx, edx
lea ebx, [edx + 6]
sar ebx, 0x1f
shr ebx, 0x1d
lea ebx, [edx + ebx + 6]
mov esi, dword [ecx + 8]
mov edi, dword [ecx + 4]
mov eax, edx
lea edx, [esi - 1]
test edx, edx
jl 0x582ed5
mov esi, dword [edi + esi*4 - 4]
nop
cmp esi, 0x10000
jb 0x582eab
shr esi, 0x10
mov edi, 0x10
jmp 0x582ead
xor edi, edi
cmp esi, 0x100
jb 0x582ebb
shr esi, 8
add edi, 8
cmp esi, 0x100
jae 0x583010
shl edx, 5
movzx ebp, byte [ebp + esi]
add ebp, edi
add edx, ebp
jmp 0x582ed7
xor edx, edx
sar ebx, 3
mov ebp, ebx
shl ebx, 3
cmp edx, ebx
jg 0x582fd4
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ebp
lea eax, [0x65ac00]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.004480c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x44]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
call fcn.0050a3d0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0x90]
test ebx, ebx
je 0x582f50
mov ebx, dword [ebx]
jmp 0x582f52
xor ebx, ebx
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call fcn.004b9ef0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x78]
mov dword [esp], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x40]
dec edx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
call fcn.00582890
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
add esp, 0x6c
ret
mov eax, dword [0x8ad450]
mov ecx, dword [0x8ad454]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
add esp, 0x6c
ret
mov eax, dword [0x8ad450]
mov ecx, dword [0x8ad454]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ecx
add esp, 0x6c
ret
mov eax, esi
mov ecx, 0x100
call fcn.0045f040
mov eax, edx
mov ecx, 0x100
call fcn.0045f040
mov eax, ebx
mov ecx, 0x100
call fcn.0045f040
nop
call fcn.0045dba0
jmp fcn.00582cd0