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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x2c]
cmp eax, dword [ecx + 8]
jbe 0x582898
sub esp, 0xac
mov edx, dword [esp + 0xb0]
mov dword [edx + 0x40], 0
movzx ebx, byte [edx + 0x30]
test bl, bl
je 0x58287b
mov byte [edx + 0x30], 0
mov ebx, dword [edx + 0x28]
cmp dword [edx + 0x20], ebx
jbe 0x582874
mov dword [esp + 0x3c], ebx
cmp ebx, 0x1f
xchg ebp, ebx
setb bl
xchg ebp, ebx
mov eax, dword [edx + 0x40]
mov dword [esp + 0x5c], eax
mov ecx, ebx
mov ebx, dword [edx + 0x44]
mov esi, edx
mov edx, dword [edx + 0x3c]
and ebp, 1
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5826e5
lea ebp, [eax + 1]
cmp ebp, ebx
ja 0x5826a4
mov byte [edx + eax], cl
cmp eax, ebp
jae 0x582890
mov ecx, ebx
movzx ebx, byte [edx + eax]
or ebx, 0x20
mov byte [edx + eax], bl
mov dword [esi + 0x40], ebp
mov dword [esi + 0x44], ecx
mov ebx, dword [0x7a0970]
test ebx, ebx
jne 0x582695
mov dword [esi + 0x3c], edx
mov dword [esi + 0x28], 0xffffffff
mov edx, dword [esi + 0x20]
mov dword [esp + 0x44], edx
cmp edx, 0x1f
setb bl
mov eax, dword [esi + 0x40]
mov dword [esp + 0x60], eax
mov ebp, dword [esi + 0x44]
mov ecx, edx
mov edx, dword [esi + 0x3c]
and ebx, 1
test bl, bl
jne 0x582646
lea ebx, [eax + 1]
cmp ebp, ebx
jb 0x582605
add ecx, 0xffffffe1
mov byte [edx + eax], 0x1f
mov edi, 0xffffffff
adc edi, 0
jmp 0x582097
and ecx, 0x7f
or ecx, 0x80
mov esi, dword [esp + 0x7c]
mov byte [esi + edx], cl
mov ecx, dword [esp + 0x44]
shr ecx, 7
mov edx, edi
shl edi, 0x19
or ecx, edi
shr edx, 7
mov esi, dword [esp + 0xb0]
mov edi, edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x44], ecx
cmp ecx, 0x80
setae dl
test edi, edi
xchg ebp, ebx
sete bl
xchg ebp, ebx
seta bl
and ebp, edx
or ebx, ebp
test bl, bl
je 0x582128
mov edx, dword [esp + 0x74]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x70]
cmp ebx, ebp
jbe 0x582069
mov dword [esp + 0x58], edi
lea eax, [0x5db380]
mov dword [esp], eax
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.00445150
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x74]
jmp 0x582069
mov edx, dword [esp + 0x74]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x70]
cmp ebx, ebp
ja 0x5825bc
mov edi, dword [esp + 0x7c]
mov byte [edi + edx], cl
cmp eax, ebx
jae 0x582889
movzx ecx, byte [edi + eax]
or ecx, 0x20
mov byte [edi + eax], cl
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], ebp
mov ecx, dword [0x7a0970]
test ecx, ecx
jne 0x5825ab
mov dword [esi + 0x3c], edi
mov dword [esp], esi
lea edi, [esp + 4]
lea esi, [esp + 0xb4]
call fcn.0045e58e
call fcn.005828b0
movzx eax, byte [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x50], edx
test al, al
je 0x58241e
test edx, edx
sete bl
cmp ecx, 0x7f
xchg ebp, ebx
setb bl
xchg ebp, ebx
mov esi, dword [esp + 0xb0]
mov eax, dword [esi + 0x40]
mov dword [esp + 0x64], eax
mov edi, edx
mov edx, dword [esi + 0x44]
mov esi, dword [esi + 0x3c]
and ebx, ebp
test bl, bl
jne 0x5823d4
lea ebx, [eax + 1]
cmp ebx, edx
ja 0x582396
add ecx, 0xffffff81
mov byte [esi + eax], 0x7f
adc edi, 0xffffffff
jmp 0x582209
and ecx, 0x7f
or ecx, 0x80
mov byte [esi + ebx], cl
mov ecx, dword [esp + 0x48]
shr ecx, 7
mov ebx, edi
shl edi, 0x19
or ecx, edi
shr ebx, 7
mov edi, ebx
mov ebx, edx
mov edx, ebp
mov dword [esp + 0x48], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x80], esi
test edi, edi
xchg ebp, ebx
seta bl
xchg ebp, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
cmp ecx, 0x80
setae dl
and edx, esi
or edx, ebp
test dl, dl
je 0x58229e
lea edx, [ebx + 1]
mov ebp, dword [esp + 0x68]
cmp ebp, edx
jb 0x582251
mov esi, dword [esp + 0x80]
jmp 0x5821e6
mov dword [esp + 0x54], edi
lea eax, [0x5db380]
mov dword [esp], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
call fcn.00445150
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x54]
jmp 0x5821e6
lea edx, [ebx + 1]
mov ebp, dword [esp + 0x68]
cmp ebp, edx
jb 0x582351
mov esi, dword [esp + 0x80]
mov byte [esi + ebx], cl
cmp edx, eax
jbe 0x582882
movzx ecx, byte [esi + eax]
or ecx, 0xffffff80
mov byte [esi + eax], cl
mov ecx, dword [esp + 0xb0]
mov dword [ecx + 0x40], edx
mov dword [ecx + 0x44], ebp
mov edx, dword [0x7a0970]
test edx, edx
jne 0x582345
mov dword [ecx + 0x3c], esi
mov eax, dword [ecx + 0x34]
mov edx, dword [ecx + 0x38]
mov eax, dword [eax + 0x10]
mov ebx, dword [ecx + 0x3c]
mov ebp, dword [ecx + 0x40]
mov esi, dword [ecx + 0x44]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
call eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
test ecx, ecx
je 0x58232b
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
add esp, 0xac
ret
mov ebx, dword [esp + 0xb0]
cmp dword [ebx + 0x40], eax
je 0x582316
mov ecx, dword [0x783090]
mov edx, dword [0x783094]
jmp 0x582316
lea edi, [ecx + 0x3c]
mov eax, esi
call fcn.0045de10
jmp 0x5822e3
lea eax, [0x5db380]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
call fcn.00445150
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x74]
jmp 0x5822b4
lea ecx, [0x5db380]
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
call fcn.00445150
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x50]
jmp 0x5821da
lea ebx, [eax + 1]
cmp ebx, edx
ja 0x5823e7
mov byte [esi + eax], cl
mov ebp, edx
mov edx, ebx
jmp 0x5822b7
lea ecx, [0x5db380]
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
call fcn.00445150
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x40]
jmp 0x5823db
lea edi, [esp + 0x98]
lea esi, [esp + 0xb4]
call fcn.0045e58e
movzx eax, byte [esp + 0xa8]
test al, al
je 0x582575
xor eax, eax
mov byte [esp + 0x3b], al
test al, al
jne 0x582548
test edx, edx
sete cl
mov ebx, dword [esp + 0x40]
test ebx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ecx, ebp
test cl, cl
je 0x5824d2
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx + 0x3c]
mov ebx, dword [ecx + 0x40]
mov ebp, dword [ecx + 0x44]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
lea edi, [esp + 0xc]
lea esi, [esp + 0xb4]
call fcn.0045e58e
mov byte [esp + 0x20], al
call fcn.00582a10
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0xb0]
mov dword [ebx + 0x40], ecx
mov dword [ebx + 0x44], edx
mov ecx, dword [0x7a0970]
test ecx, ecx
jne 0x5824c8
mov dword [ebx + 0x3c], eax
mov ecx, ebx
jmp 0x5822e3
lea edi, [ebx + 0x3c]
call fcn.0045de10
jmp 0x5824c1
mov ecx, dword [esp + 0xb0]
mov ebp, dword [ecx + 0x3c]
mov eax, dword [ecx + 0x40]
mov ecx, dword [ecx + 0x44]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
lea edi, [esp + 0xc]
lea esi, [esp + 0xb4]
call fcn.0045e58e
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ebx
movzx ecx, byte [esp + 0x3b]
mov byte [esp + 0x28], cl
call fcn.00582b30
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0xb0]
mov dword [ebx + 0x40], ecx
mov dword [ebx + 0x44], edx
mov ecx, dword [0x7a0970]
test ecx, ecx
jne 0x58253b
mov dword [ebx + 0x3c], eax
jmp 0x5824c1
lea edi, [ebx + 0x3c]
call fcn.0045de10
jmp 0x5824c1
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
lea edi, [esp + 4]
lea esi, [esp + 0xb4]
call fcn.0045e58e
call fcn.005836d0
movzx eax, byte [esp + 0x3b]
mov edx, dword [esp + 0x50]
jmp 0x58244f
lea edi, [esp + 0x84]
lea esi, [esp + 0xb4]
call fcn.0045e58e
mov ecx, dword [esp + 0x88]
add ecx, dword [esp + 0x90]
add ecx, 0x20
mov ebx, dword [esp + 0xb0]
cmp dword [ebx + 0x20], ecx
setae al
jmp 0x582443
lea ecx, [esi + 0x3c]
mov eax, edi
mov edi, ecx
call fcn.0045de10
jmp 0x58216b
lea eax, [0x5db380]
mov dword [esp], eax
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.00445150
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0xb0]
jmp 0x58213f
lea ecx, [0x5db380]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.00445150
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0xb0]
jmp 0x582058
lea ebx, [eax + 1]
cmp ebp, ebx
jb 0x582657
mov byte [edx + eax], cl
mov edi, edx
jmp 0x582142
lea ecx, [0x5db380]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.00445150
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0xb0]
jmp 0x58264d
lea edi, [esi + 0x3c]
mov eax, edx
call fcn.0045de10
jmp 0x58201f
lea ecx, [0x5db380]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
call fcn.00445150
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea ebp, [eax + 1]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0xb0]
jmp 0x581ff1
lea ebp, [eax + 1]
cmp ebp, ebx
ja 0x582833
add ecx, 0xffffffe1
mov byte [edx + eax], 0x1f
mov edi, 0xffffffff
adc edi, 0
jmp 0x582739
and ecx, 0x7f
or ecx, 0x80
mov esi, dword [esp + 0x78]
mov byte [esi + edx], cl
mov ecx, dword [esp + 0x3c]
shr ecx, 7
mov edx, edi
shl edi, 0x19
or ecx, edi
shr edx, 7
mov esi, dword [esp + 0xb0]
mov edi, edx
mov edx, dword [esp + 0x78]
mov edx, ebp
mov ebp, ebx
mov ebx, edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x6c], ebx
cmp ecx, 0x80
setae dl
test edi, edi
seta bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, edx
or ebx, ebp
test bl, bl
je 0x5827ca
mov edx, dword [esp + 0x74]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x6c]
cmp ebx, ebp
jbe 0x582701
mov dword [esp + 0x4c], edi
lea eax, [0x5db380]
mov dword [esp], eax
mov ecx, dword [esp + 0x78]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.00445150
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x74]
jmp 0x582701
mov edx, dword [esp + 0x74]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x6c]
cmp ebx, ebp
ja 0x5827ed
mov edi, dword [esp + 0x78]
mov byte [edi + edx], cl
mov edx, edi
mov ecx, ebp
mov ebp, ebx
mov ebx, ecx
jmp 0x581ff4
lea eax, [0x5db380]
mov dword [esp], eax
mov ecx, dword [esp + 0x78]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.00445150
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0xb0]
jmp 0x5827dd
lea ecx, [0x5db380]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
call fcn.00445150
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea ebp, [eax + 1]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0xb0]
jmp 0x5826f0
mov esi, edx
jmp 0x58201f
mov esi, edx
jmp 0x58216b
mov ecx, edx
call fcn.0045de90
mov ecx, ebx
call fcn.0045de90
mov ecx, ebp
call fcn.0045de90
nop
call fcn.0045c8b0
jmp fcn.00581f70