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

Disassembly:
sub esp, 0x54
mov eax, dword [0x6651c0]
xor eax, esp
mov dword [esp + 0x50], eax
push ebx
mov ebx, dword [esp + 0x5c]
xor eax, eax
push ebp
push esi
push edi
mov edi, dword [esp + 0x70]
push ebx
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], eax
call fcn.0059252b
mov ebp, eax
lea ecx, [ebx + 0x34]
push 0x30
push ebp
push ecx
call sub.VCRUNTIME140.dll_memcmp
add esp, 0x10
test eax, eax
je 0x591ebd
mov ebp, dword [ebp + 0x10]
inc ebp
mov dword [esp + 0x10], ebp
push ebx
call fcn.005932cd
mov esi, eax
pop ecx
test esi, esi
jne 0x592330
mov ecx, dword [ebx + 0x44]
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], 1
test ecx, ecx
jne 0x591fdc
lea eax, [esp + 0x40]
push 0x377f0682
push eax
call fcn.0057333c
lea eax, [esp + 0x4c]
push 0x2de218
push eax
call fcn.0057333c
lea eax, [esp + 0x58]
push ebp
push eax
call fcn.0057333c
push dword [ebx + 0x70]
lea eax, [esp + 0x68]
push eax
call fcn.0057333c
add esp, 0x20
cmp dword [ebx + 0x70], esi
jne 0x591f34
lea eax, [ebx + 0x54]
push eax
push 8
call fcn.00531ada
pop ecx
pop ecx
push 8
lea eax, [ebx + 0x54]
push eax
lea eax, [esp + 0x58]
push eax
call sub.VCRUNTIME140.dll_memcpy
lea eax, [esp + 0x40]
push eax
push 0
push 0x18
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x48]
call fcn.00591a68
mov edi, dword [esp + 0x54]
lea eax, [esp + 0x78]
push edi
push eax
call fcn.0057333c
mov esi, dword [esp + 0x60]
lea eax, [esp + 0x84]
push esi
push eax
call fcn.0057333c
mov eax, dword [esp + 0x5c]
xor edx, edx
mov dword [ebx + 0x24], ebp
mov dword [ebx + 0x4c], edi
mov dword [ebx + 0x50], esi
push edx
mov byte [ebx + 0x2f], al
mov eax, dword [ebx + 8]
push edx
mov byte [ebx + 0x41], dl
lea edx, [esp + 0x78]
push 0x20
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0xc]
mov esi, eax
add esp, 0x44
test esi, esi
jne 0x59232e
cmp byte [ebx + 0x30], al
je 0x591fd4
mov eax, dword [esp + 0x7c]
sar eax, 2
and eax, 3
push eax
push dword [ebx + 8]
call fcn.0056d943
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x59232e
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
cmp dword [ebx + 0x24], ebp
je 0x591ff1
push 0x10bdb
call fcn.0055ed8e
pop ecx
jmp 0x592330
mov eax, dword [ebx + 8]
xorps xmm0, xmm0
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x50], eax
lea eax, [ebp + 0x18]
cdq
push edx
push eax
push 0
push ecx
mov dword [esp + 0x50], ebx
movlpd qword [esp + 0x58], xmm0
mov dword [esp + 0x64], ebp
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], edx
call fcn.0059da60
mov ecx, eax
mov eax, edx
add ecx, 0x20
mov dword [esp + 0x18], ecx
adc eax, 0
cmp dword [esp + 0x24], 0
mov dword [esp + 0x14], eax
je 0x59213a
mov esi, dword [esp + 0x10]
test esi, esi
je 0x5920da
cmp dword [edi + 0x10], 0
jne 0x59205d
cmp dword [esp + 0x78], 0
jne 0x5920da
and dword [esp + 0x1c], 0
lea eax, [esp + 0x1c]
push eax
push dword [edi + 0x18]
push ebx
call fcn.00591d62
add esp, 0xc
cmp dword [esp + 0x1c], esi
jb 0x5920d2
push dword [esp + 0x3c]
mov esi, dword [esp + 0x20]
push dword [esp + 0x38]
push 0
lea eax, [esi - 1]
push eax
call fcn.0059da60
add eax, 0x38
adc edx, 0
cmp dword [ebx + 0x68], 0
je 0x5920a1
cmp esi, dword [ebx + 0x68]
jae 0x5920a4
mov dword [ebx + 0x68], esi
push edx
push eax
push ebp
push dword [edi + 4]
push dword [ebx + 8]
call fcn.0056d98e
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x59232e
mov ecx, dword [esp + 0x18]
mov eax, 0xffbf
and word [edi + 0x1c], ax
mov eax, dword [esp + 0x14]
jmp 0x59212f
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
inc dword [esp + 0x20]
cmp dword [esp + 0x78], 0
je 0x5920f1
cmp dword [edi + 0x10], 0
jne 0x5920f1
mov edx, dword [esp + 0x74]
jmp 0x5920f3
xor edx, edx
push eax
push ecx
push edx
lea eax, [esp + 0x4c]
push edi
push eax
call fcn.00593773
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x59232e
mov ecx, dword [esp + 0x18]
lea eax, [ebp + 0x18]
cdq
add ecx, eax
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0x14]
adc eax, edx
mov dword [esp + 0x18], ecx
or word [edi + 0x1c], 0x40
mov dword [esp + 0x14], eax
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x592044
cmp dword [esp + 0x78], 0
je 0x5922a4
cmp dword [ebx + 0x68], 0
je 0x592161
push dword [esp + 0x20]
push ebx
call fcn.00593355
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x59232e
mov edi, dword [esp + 0x7c]
and edi, 3
je 0x592253
cmp byte [ebx + 0x31], 0
je 0x592245
push dword [ebx + 8]
call fcn.00575294
pop ecx
cdq
mov ecx, eax
add ecx, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
mov ecx, edx
adc ecx, dword [esp + 0x14]
sub dword [esp + 0x10], 1
push edx
sbb ecx, 0
push eax
push ecx
push dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
call fcn.0059daa0
mov ecx, dword [esp + 0x10]
sub ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
sbb eax, edx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov edx, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x10], ecx
jne 0x5921da
cmp eax, edx
je 0x5921e5
and dword [esp + 0x2c], 0
cmp eax, edx
jg 0x59223e
jl 0x5921eb
cmp ecx, dword [esp + 0x10]
jae 0x59223e
mov edi, dword [esp + 0x30]
push eax
push ecx
push dword [esp + 0x7c]
lea eax, [esp + 0x4c]
push edi
push eax
call fcn.00593773
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x59232e
mov ecx, dword [esp + 0x18]
lea eax, [ebp + 0x18]
cdq
add ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
adc eax, edx
inc dword [esp + 0x28]
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x4c]
jl 0x5921ef
jg 0x592237
cmp ecx, dword [esp + 0x48]
jb 0x5921ef
mov edi, dword [esp + 0x7c]
and edi, 3
cmp dword [esp + 0x2c], 0
je 0x592253
push edi
push dword [esp + 0x48]
call fcn.0056d943
pop ecx
pop ecx
mov esi, eax
cmp byte [ebx + 0x2f], 0
je 0x5922a4
cmp dword [ebx + 0x14], 0
mov edi, dword [ebx + 0x10]
jl 0x5922a4
jg 0x592268
test edi, edi
jb 0x5922a4
mov ecx, dword [esp + 0x20]
lea eax, [ebp + 0x18]
add ecx, dword [esp + 0x28]
cdq
push edx
push eax
push 0
push ecx
call fcn.0059da60
mov ecx, dword [ebx + 0x14]
add eax, 0x20
adc edx, 0
cmp edx, ecx
jl 0x592295
jg 0x592291
cmp eax, edi
jbe 0x592295
mov edi, eax
mov ecx, edx
push ecx
push edi
push ebx
call fcn.00592f98
add esp, 0xc
mov byte [ebx + 0x2f], 0
mov edi, dword [ebx + 0x44]
mov eax, dword [esp + 0x24]
jmp 0x5922d2
test esi, esi
jne 0x59232e
test byte [eax + 0x1c], 0x40
je 0x5922cb
push dword [eax + 0x18]
inc edi
push edi
push ebx
call fcn.00592437
mov esi, eax
add esp, 0xc
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x24], eax
test eax, eax
jne 0x5922ad
jmp 0x5922f9
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x5922ff
inc edi
dec eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
push dword [eax + 0x18]
push edi
push ebx
call fcn.00592437
add esp, 0xc
mov esi, eax
test esi, esi
je 0x5922d8
jmp 0x59232e
mov eax, ebp
mov dword [ebx + 0x44], edi
sar eax, 0x10
and ebp, 0xff00
or eax, ebp
cmp dword [esp + 0x78], 0
mov word [ebx + 0x42], ax
je 0x59232e
mov eax, dword [esp + 0x74]
inc dword [ebx + 0x3c]
push ebx
mov dword [ebx + 0x48], eax
call fcn.00592d5a
pop ecx
mov dword [ebx + 0xc], edi
mov eax, esi
mov ecx, dword [esp + 0x60]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0059d866
add esp, 0x54
ret