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

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x581a10
test dword [0x87ed4c], 0xffffffff
jne 0x5821f0
call fcn.007663a0
jmp fcn.005819e0
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x84
mov ebx, eax
mov esi, dword [ebx]
mov eax, dword [ebx + 0x3c]
mov dword [esp + 0x78], edx
lea ecx, [esp + 0x68]
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 1
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x18]
add esp, 8
mov edi, eax
test edi, edi
jne 0x581f3b
mov edx, dword [esp + 0x68]
or edx, dword [esp + 0x6c]
je 0x581f3b
mov edi, dword [ebx + 0x98]
mov eax, dword [ebx + 0x3c]
mov edx, dword [ebx]
mov ecx, dword [edx + 8]
mov dword [esp + 0x24], edi
inc ecx
lea edx, [esp + 0x50]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], ecx
mov byte [edi], 0
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x18]
add esp, 8
mov edi, eax
test edi, edi
jne 0x581c6c
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
mov ecx, edx
sub ecx, 0x10
mov ecx, eax
sbb ecx, 0
jl 0x581c6c
add edx, 0xfffffff0
adc eax, 0xffffffff
mov dword [esp + 4], edx
lea edx, [esp + 0x44]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
call fcn.0049c230
mov edi, eax
test edi, edi
jne 0x581c6c
mov edx, dword [esp + 0x20]
cmp edx, dword [esp + 0x44]
jbe 0x581c6c
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x2c]
add ecx, 0xfffffff4
adc edi, 0xffffffff
mov dword [esp + 4], ecx
lea edx, [esp + 0x28]
mov dword [esp + 8], edi
call fcn.0049c230
mov edi, eax
test edi, edi
jne 0x581c6c
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
add edi, 0xfffffff8
adc ecx, 0xffffffff
push ecx
mov eax, dword [edx]
push edi
push 8
lea ecx, [esp + 0x3c]
push ecx
push edx
call dword [eax + 8]
add esp, 0x14
mov edi, eax
test edi, edi
jne 0x581c6c
push 8
push 0x78c7a0
lea edx, [esp + 0x38]
push edx
call fcn.00766780
add esp, 0xc
test eax, eax
jne 0x581c6c
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov eax, dword [edi]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x44]
sub ecx, esi
sbb edx, 0
add ecx, 0xfffffff0
adc edx, 0xffffffff
push edx
push ecx
push esi
push dword [esp + 0x30]
push edi
mov esi, dword [esp + 0x34]
call dword [eax + 8]
add esp, 0x14
mov edi, eax
test edi, edi
jne 0x581c6c
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x28]
test edx, edx
jbe 0x581c54
cmp edx, 0x10
jb 0x5821a6
movdqa xmm0, xmmword [0x78c840]
mov ecx, edx
and ecx, 0xf
neg ecx
movd xmm1, eax
mov edi, dword [esp + 0x24]
add ecx, edx
xor eax, eax
movd xmm2, dword [eax + edi]
movd xmm3, dword [eax + edi + 4]
movd xmm4, dword [eax + edi + 8]
movd xmm5, dword [eax + edi + 0xc]
pshufb xmm2, xmm0
psrad xmm2, 0x18
psubd xmm1, xmm2
add eax, 0x10
pshufb xmm3, xmm0
psrad xmm3, 0x18
psubd xmm1, xmm3
pshufb xmm4, xmm0
psrad xmm4, 0x18
psubd xmm1, xmm4
pshufb xmm5, xmm0
psrad xmm5, 0x18
psubd xmm1, xmm5
cmp eax, ecx
jb 0x581bc9
pshufd xmm0, xmm1, 0xe
paddd xmm1, xmm0
pshufd xmm2, xmm1, 0x39
paddd xmm1, xmm2
movd eax, xmm1
cmp ecx, edx
jae 0x581c50
mov edi, dword [esp + 0x24]
mov dword [esp + 0x5c], ebx
movsx ebx, byte [ecx + edi]
sub eax, ebx
inc ecx
cmp ecx, edx
jb 0x581c41
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x28], eax
test eax, eax
je 0x581c62
mov dword [esp + 0x44], 0
xor edx, edx
mov eax, dword [esp + 0x24]
mov byte [edx + eax], 0
xor edi, edi
test edi, edi
jne 0x581c8f
mov edx, dword [esp + 0x24]
movsx ecx, byte [edx]
test ecx, ecx
je 0x581c8f
lea eax, [esp + 0x74]
push eax
push 0
push dword [esp + 0x2c]
push esi
call dword [esi + 0x20]
add esp, 0x10
mov edi, eax
test edi, edi
jne 0x581f3b
cmp dword [esp + 0x74], 0
jne 0x581caa
movzx eax, byte [ebx + 0xb]
mov byte [ebx + 0x12], al
jmp 0x581f4a
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
xor edi, edi
mov dword [ebx + 0x48], edi
lea ecx, [ebx + 0x48]
mov dword [ebx + 0x4c], edi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x64], esi
mov dword [esp + 8], edx
mov edx, dword [esp + 0x78]
lea esi, [esp + 0x70]
lea ecx, [esp + 0x58]
mov dword [esp + 0xc], eax
mov eax, ebx
mov dword [esp + 0x14], esi
call fcn.0049bbc0
mov edi, eax
test edi, edi
jne 0x5821cf
mov eax, dword [esp + 0x58]
mov esi, dword [ebx + 0x70]
cmp eax, 0xffffffff
jne 0x581d1f
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
sub ecx, esi
sbb edi, 0
mov eax, dword [ebx + 0x7c]
add eax, 8
cdq
push edx
push eax
push edi
push ecx
call fcn.00743dd0
mov dword [esp + 0x58], eax
test eax, eax
jne 0x581dba
mov edi, dword [ebx + 0x48]
mov eax, dword [ebx + 0x4c]
cmp dword [esp + 0x78], 0
mov dword [esp + 0x48], eax
jne 0x581d9d
mov edx, dword [ebx + 0x50]
mov eax, dword [ebx + 0x54]
add edx, esi
adc eax, 0
sub eax, dword [esp + 0x48]
sub edx, edi
or edx, eax
jne 0x581d80
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov eax, dword [ebx + 0x7c]
sub ecx, edi
sbb edx, dword [esp + 0x48]
add eax, 8
mov dword [esp + 0x40], edx
cdq
push edx
push eax
push dword [esp + 0x48]
push ecx
call fcn.00743dd0
mov dword [esp + 0x58], eax
mov dword [esp + 0x60], 1
jmp 0x581dcc
mov dword [esp + 0x60], 0
sub edi, esi
or edi, dword [esp + 0x48]
je 0x581dd8
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
jmp 0x581cc9
mov dword [esp + 0x60], 0
sub edi, esi
or edi, dword [esp + 0x48]
je 0x581dd8
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
jmp 0x581cc9
mov edi, dword [ebx + 0x48]
mov edx, dword [ebx + 0x4c]
mov dword [esp + 0x48], edx
mov dword [esp + 0x60], 0
sub edi, esi
or edi, dword [esp + 0x48]
jne 0x581ea4
mov esi, dword [esp + 0x70]
movzx eax, byte [ebx + 0xe]
cmp eax, 4
jl 0x581dee
mov edx, dword [ebx + 0x38]
mov ecx, dword [edx]
test ecx, ecx
jne 0x581df5
xor edi, edi
jmp 0x581e91
lea eax, [esp + 0x38]
push eax
push edx
call dword [ecx + 0x18]
add esp, 8
mov edi, eax
mov eax, dword [ebx + 0x7c]
cdq
push edx
push eax
push 0
push esi
call fcn.00743d90
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], edx
test edi, edi
jne 0x581e91
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x20], edx
sub edx, dword [esp + 0x2c]
mov ecx, eax
sub ecx, dword [esp + 0x24]
or edx, ecx
je 0x581e91
mov edx, dword [esp + 0x2c]
sub dword [esp + 0x20], edx
sbb eax, dword [esp + 0x24]
jl 0x581e65
mov edx, dword [esp + 0x20]
or edx, eax
je 0x581e65
mov eax, dword [ebx + 0x38]
push dword [esp + 0x24]
push dword [esp + 0x30]
mov edx, dword [eax]
push eax
call dword [edx + 0x10]
add esp, 0xc
mov edi, eax
jmp 0x581e8a
mov ecx, dword [ebx + 0x38]
mov edi, dword [ecx]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
add edx, 0xffffffff
adc eax, 0xffffffff
push eax
push edx
push 1
push 0x798fd0
push ecx
call dword [edi + 0xc]
add esp, 0x14
mov edi, eax
test edi, edi
jne 0x581e91
mov dword [ebx + 0x20], esi
test edi, edi
jne 0x581f3b
mov eax, dword [esp + 0x70]
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x58]
test eax, eax
ja 0x581eb5
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
jmp 0x581cc9
cmp dword [esp + 0x64], 0
je 0x581eef
cmp dword [ebx + 0x24], 0
jne 0x581ee9
mov eax, dword [ebx + 0xac]
test eax, eax
je 0x581eda
mov dword [eax + 0x10], 1
mov eax, dword [eax + 0x2c]
test eax, eax
jne 0x581ecc
mov eax, dword [ebx + 0xa8]
call fcn.004c2060
mov byte [ebx + 0x15], 0
xor eax, eax
mov dword [esp + 0x64], eax
xor esi, esi
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x4c]
xor edi, edi
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xc], ebx
mov edx, 1
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
call fcn.0049ae80
test eax, eax
jne 0x5821ad
inc esi
cmp esi, dword [esp + 0x58]
jb 0x581efb
nop
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
jmp 0x581cc9
movzx edx, byte [ebx + 0xb]
mov byte [ebx + 0x12], dl
test edi, edi
jne 0x582190
mov esi, dword [ebx + 0x98]
mov ecx, dword [ebx + 0x3c]
mov edx, dword [ebx]
mov edi, dword [edx + 8]
inc edi
mov dword [esp + 0x24], edi
lea edx, [esp + 0x48]
mov byte [esi], 0
mov edi, dword [ecx]
push edx
push ecx
mov dword [esp + 0x68], ecx
call dword [edi + 0x18]
mov ecx, dword [esp + 0x68]
add esp, 8
mov edi, eax
test edi, edi
jne 0x582159
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
sub eax, 0x10
mov eax, edx
sbb eax, 0
jl 0x582159
mov edi, dword [esp + 0x20]
add edi, 0xfffffff0
adc edx, 0xffffffff
mov dword [esp + 4], edi
mov eax, ecx
mov dword [esp + 8], edx
lea edx, [esp + 0x40]
mov dword [esp + 0x60], ecx
call fcn.0049c230
mov ecx, dword [esp + 0x60]
mov edi, eax
test edi, edi
jne 0x582159
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x40]
jbe 0x582159
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
add edi, 0xfffffff4
adc edx, 0xffffffff
mov dword [esp + 4], edi
mov eax, ecx
mov dword [esp + 8], edx
lea edx, [esp + 0x2c]
mov dword [esp + 0x60], ecx
call fcn.0049c230
mov ecx, dword [esp + 0x60]
mov edi, eax
test edi, edi
jne 0x582159
mov edx, dword [ecx]
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
add eax, 0xfffffff8
adc edi, 0xffffffff
push edi
push eax
push 8
lea edi, [esp + 0x2c]
push edi
push ecx
mov dword [esp + 0x74], ecx
call dword [edx + 8]
mov ecx, dword [esp + 0x74]
add esp, 0x14
mov edi, eax
test edi, edi
jne 0x582159
push 8
push 0x78c7a0
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x6c], ecx
call fcn.00766780
mov ecx, dword [esp + 0x6c]
add esp, 0xc
test eax, eax
jne 0x582159
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x48]
mov edx, dword [ecx]
mov dword [esp + 0x5c], ebx
sub edi, eax
mov ebx, dword [esp + 0x4c]
sbb ebx, 0
add edi, 0xfffffff0
adc ebx, 0xffffffff
push ebx
push edi
push eax
push esi
push ecx
mov ebx, dword [esp + 0x70]
call dword [edx + 8]
add esp, 0x14
mov edi, eax
test edi, edi
jne 0x582159
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
test eax, eax
jbe 0x582145
cmp eax, 0x10
jb 0x5821e4
movdqa xmm0, xmmword [0x78c840]
mov edx, eax
and edx, 0xf
neg edx
movd xmm1, ecx
add edx, eax
xor ecx, ecx
movd xmm2, dword [ecx + esi]
movd xmm3, dword [ecx + esi + 4]
movd xmm4, dword [ecx + esi + 8]
movd xmm5, dword [ecx + esi + 0xc]
pshufb xmm2, xmm0
psrad xmm2, 0x18
psubd xmm1, xmm2
add ecx, 0x10
pshufb xmm3, xmm0
psrad xmm3, 0x18
psubd xmm1, xmm3
pshufb xmm4, xmm0
psrad xmm4, 0x18
psubd xmm1, xmm4
pshufb xmm5, xmm0
psrad xmm5, 0x18
psubd xmm1, xmm5
cmp ecx, edx
jb 0x5820c6
pshufd xmm0, xmm1, 0xe
paddd xmm1, xmm0
pshufd xmm2, xmm1, 0x39
paddd xmm1, xmm2
movd ecx, xmm1
cmp edx, eax
jae 0x582141
movsx edi, byte [edx + esi]
sub ecx, edi
inc edx
cmp edx, eax
jb 0x582136
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x582153
mov dword [esp + 0x40], 0
xor eax, eax
mov byte [eax + esi], 0
xor edi, edi
test edi, edi
jne 0x582190
movsx edx, byte [esi]
mov ecx, 1
test edx, edx
cmovne edx, ecx
mov eax, ebx
call fcn.00582d50
mov edi, eax
test edi, edi
jne 0x582190
movsx edx, byte [esi]
test edx, edx
je 0x582190
cmp dword [esp + 0x74], 0
je 0x582190
mov eax, ebx
mov edx, esi
call fcn.0057b640
mov edi, eax
mov eax, ebx
call fcn.00420a20
mov eax, edi
add esp, 0x84
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor ecx, ecx
jmp 0x581c35
mov ebx, dword [esp + 0x5c]
mov edi, eax
cmp edi, 0x65
jne 0x581f3b
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0x48], edx
mov dword [ebx + 0x4c], eax
jmp 0x581cc9
cmp edi, 0x65
jne 0x581f3b
movzx eax, byte [ebx + 0xb]
mov byte [ebx + 0x12], al
jmp 0x581f4a
xor edx, edx
jmp 0x582132
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x84
mov dword [esp + 0x78], edx
mov ebx, eax
mov esi, dword [ebx]
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 1
mov eax, dword [ebx + 0x3c]
mov edx, dword [eax]
lea ecx, [esp + 0x68]
push ecx
push eax
call dword [edx + 0x18]
add esp, 8
mov edi, eax
test edi, edi
jne 0x58267d
mov edx, dword [esp + 0x68]
or edx, dword [esp + 0x6c]
je 0x58267d
mov edi, dword [ebx + 0x98]
mov dword [esp + 0x24], edi
mov eax, dword [ebx + 0x3c]
mov dword [esp + 0x2c], eax
mov edx, dword [ebx]
mov ecx, dword [edx + 8]
inc ecx
mov dword [esp + 0x20], ecx
mov byte [edi], 0
mov ecx, dword [eax]
lea edx, [esp + 0x50]
push edx
push eax
call dword [ecx + 0x18]
add esp, 8
mov edi, eax
test edi, edi
jne 0x5823ae
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
mov ecx, edx
sub ecx, 0x10
mov ecx, eax
sbb ecx, 0
jl 0x5823ae
add edx, 0xfffffff0
adc eax, 0xffffffff
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x44]
call fcn.0049c230
mov edi, eax
test edi, edi
jne 0x5823ae
mov edx, dword [esp + 0x20]
cmp edx, dword [esp + 0x44]
jbe 0x5823ae
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
add ecx, 0xfffffff4
adc edi, 0xffffffff
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x28]
call fcn.0049c230
mov edi, eax
test edi, edi
jne 0x5823ae
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
add edi, 0xfffffff8
adc ecx, 0xffffffff
push ecx
push edi
push 8
lea ecx, [esp + 0x3c]
push ecx
push edx
call dword [eax + 8]
add esp, 0x14
mov edi, eax
test edi, edi
jne 0x5823ae
push 8
push 0x78c7a0
lea edx, [esp + 0x38]
push edx
call fcn.00766780
add esp, 0xc
test eax, eax
jne 0x5823ae
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov eax, dword [edi]
mov ecx, dword [esp + 0x50]
sub ecx, esi
mov edx, dword [esp + 0x54]
sbb edx, 0
add ecx, 0xfffffff0
adc edx, 0xffffffff
push edx
push ecx
push esi
push dword [esp + 0x30]
push edi
mov esi, dword [esp + 0x34]
call dword [eax + 8]
add esp, 0x14
mov edi, eax
test edi, edi
jne 0x5823ae
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x28]
test edx, edx
jbe 0x582396
xor eax, eax
mov dword [esp + 0x5c], ebx
mov edi, dword [esp + 0x24]
movsx ebx, byte [eax + edi]
sub ecx, ebx
inc eax
cmp eax, edx
jb 0x582383
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x5823a4
mov dword [esp + 0x44], 0
xor edx, edx
mov eax, dword [esp + 0x24]
mov byte [edx + eax], 0
xor edi, edi
test edi, edi
jne 0x5823d1
mov edx, dword [esp + 0x24]
movsx ecx, byte [edx]
test ecx, ecx
je 0x5823d1
lea eax, [esp + 0x74]
push eax
push 0
push dword [esp + 0x2c]
push esi
call dword [esi + 0x20]
add esp, 0x10
mov edi, eax
test edi, edi
jne 0x58267d
cmp dword [esp + 0x74], 0
jne 0x5823ec
movzx eax, byte [ebx + 0xb]
mov byte [ebx + 0x12], al
jmp 0x58268c
xor edi, edi
mov dword [ebx + 0x48], edi
mov dword [ebx + 0x4c], edi
mov esi, dword [esp + 0x78]
lea ecx, [ebx + 0x48]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x64], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
lea esi, [esp + 0x70]
mov dword [esp + 0x14], esi
mov eax, ebx
mov edx, dword [esp + 0x78]
lea ecx, [esp + 0x58]
call fcn.0049bbc0
mov edi, eax
test edi, edi
jne 0x58286d
mov eax, dword [esp + 0x58]
mov esi, dword [ebx + 0x70]
cmp eax, 0xffffffff
jne 0x582461
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
sub ecx, esi
sbb edi, 0
mov eax, dword [ebx + 0x7c]
add eax, 8
cdq
push edx
push eax
push edi
push ecx
call fcn.00743dd0
mov dword [esp + 0x58], eax
test eax, eax
jne 0x5824fc
mov edi, dword [ebx + 0x48]
mov eax, dword [ebx + 0x4c]
mov dword [esp + 0x48], eax
cmp dword [esp + 0x78], 0
jne 0x5824df
mov edx, dword [ebx + 0x50]
mov eax, dword [ebx + 0x54]
add edx, esi
adc eax, 0
sub edx, edi
sub eax, dword [esp + 0x48]
or edx, eax
jne 0x5824c2
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
sub ecx, edi
sbb edx, dword [esp + 0x48]
mov dword [esp + 0x40], edx
mov eax, dword [ebx + 0x7c]
add eax, 8
cdq
push edx
push eax
push dword [esp + 0x48]
push ecx
call fcn.00743dd0
mov dword [esp + 0x58], eax
mov dword [esp + 0x60], 1
jmp 0x58250e
mov dword [esp + 0x60], 0
sub edi, esi
or edi, dword [esp + 0x48]
je 0x58251a
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
jmp 0x58240b
mov dword [esp + 0x60], 0
sub edi, esi
or edi, dword [esp + 0x48]
je 0x58251a
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
jmp 0x58240b
mov edi, dword [ebx + 0x48]
mov edx, dword [ebx + 0x4c]
mov dword [esp + 0x48], edx
mov dword [esp + 0x60], 0
sub edi, esi
or edi, dword [esp + 0x48]
jne 0x5825e6
mov esi, dword [esp + 0x70]
movzx eax, byte [ebx + 0xe]
cmp eax, 4
jl 0x582530
mov edx, dword [ebx + 0x38]
mov ecx, dword [edx]
test ecx, ecx
jne 0x582537
xor edi, edi
jmp 0x5825d3
lea eax, [esp + 0x38]
push eax
push edx
call dword [ecx + 0x18]
add esp, 8
mov edi, eax
mov eax, dword [ebx + 0x7c]
cdq
push edx
push eax
push 0
push esi
call fcn.00743d90
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], edx
test edi, edi
jne 0x5825d3
mov edx, dword [esp + 0x38]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x3c]
sub edx, dword [esp + 0x2c]
mov ecx, eax
sub ecx, dword [esp + 0x24]
or edx, ecx
je 0x5825d3
mov edx, dword [esp + 0x2c]
sub dword [esp + 0x20], edx
sbb eax, dword [esp + 0x24]
jl 0x5825a7
mov edx, dword [esp + 0x20]
or edx, eax
je 0x5825a7
mov eax, dword [ebx + 0x38]
mov edx, dword [eax]
push dword [esp + 0x24]
push dword [esp + 0x30]
push eax
call dword [edx + 0x10]
add esp, 0xc
mov edi, eax
jmp 0x5825cc
mov ecx, dword [ebx + 0x38]
mov edi, dword [ecx]
mov edx, dword [esp + 0x2c]
add edx, 0xffffffff
mov eax, dword [esp + 0x24]
adc eax, 0xffffffff
push eax
push edx
push 1
push 0x798fd0
push ecx
call dword [edi + 0xc]
add esp, 0x14
mov edi, eax
test edi, edi
jne 0x5825d3
mov dword [ebx + 0x20], esi
test edi, edi
jne 0x58267d
mov eax, dword [esp + 0x70]
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x58]
test eax, eax
ja 0x5825f7
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
jmp 0x58240b
cmp dword [esp + 0x64], 0
je 0x582631
cmp dword [ebx + 0x24], 0
jne 0x58262b
mov eax, dword [ebx + 0xac]
test eax, eax
je 0x58261c
mov dword [eax + 0x10], 1
mov eax, dword [eax + 0x2c]
test eax, eax
jne 0x58260e
mov eax, dword [ebx + 0xa8]
call fcn.004c2060
mov byte [ebx + 0x15], 0
xor eax, eax
mov dword [esp + 0x64], eax
xor esi, esi
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x4c]
xor edi, edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x5c]
mov edx, 1
mov ecx, dword [esp + 0x60]
call fcn.0049ae80
test eax, eax
jne 0x58284b
inc esi
cmp esi, dword [esp + 0x58]
jb 0x58263d
mov esi, esi
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
jmp 0x58240b
movzx edx, byte [ebx + 0xb]
mov byte [ebx + 0x12], dl
test edi, edi
jne 0x582835
mov esi, dword [ebx + 0x98]
mov ecx, dword [ebx + 0x3c]
mov edx, dword [ebx]
mov edi, dword [edx + 8]
inc edi
mov dword [esp + 0x24], edi
mov byte [esi], 0
mov edi, dword [ecx]
lea edx, [esp + 0x48]
push edx
push ecx
mov dword [esp + 0x68], ecx
call dword [edi + 0x18]
mov ecx, dword [esp + 0x68]
add esp, 8
mov edi, eax
test edi, edi
jne 0x582801
mov eax, dword [esp + 0x48]
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x4c]
sub eax, 0x10
mov eax, edx
sbb eax, 0
jl 0x582801
mov edi, dword [esp + 0x20]
add edi, 0xfffffff0
adc edx, 0xffffffff
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov eax, ecx
lea edx, [esp + 0x40]
mov dword [esp + 0x60], ecx
call fcn.0049c230
mov ecx, dword [esp + 0x60]
mov edi, eax
test edi, edi
jne 0x582801
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x40]
jbe 0x582801
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
add edi, 0xfffffff4
adc edx, 0xffffffff
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov eax, ecx
lea edx, [esp + 0x2c]
mov dword [esp + 0x60], ecx
call fcn.0049c230
mov ecx, dword [esp + 0x60]
mov edi, eax
test edi, edi
jne 0x582801
mov edx, dword [ecx]
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
add eax, 0xfffffff8
adc edi, 0xffffffff
push edi
push eax
push 8
lea edi, [esp + 0x2c]
push edi
push ecx
mov dword [esp + 0x74], ecx
call dword [edx + 8]
mov ecx, dword [esp + 0x74]
add esp, 0x14
mov edi, eax
test edi, edi
jne 0x582801
push 8
push 0x78c7a0
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x6c], ecx
call fcn.00766780
mov ecx, dword [esp + 0x6c]
add esp, 0xc
test eax, eax
jne 0x582801
mov dword [esp + 0x5c], ebx
mov eax, dword [esp + 0x40]
mov edx, dword [ecx]
mov edi, dword [esp + 0x48]
sub edi, eax
mov ebx, dword [esp + 0x4c]
sbb ebx, 0
add edi, 0xfffffff0
adc ebx, 0xffffffff
push ebx
push edi
push eax
push esi
push ecx
mov ebx, dword [esp + 0x70]
call dword [edx + 8]
add esp, 0x14
mov edi, eax
test edi, edi
jne 0x582801
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
test ecx, ecx
jbe 0x5827ed
xor eax, eax
movsx edi, byte [eax + esi]
sub edx, edi
inc eax
cmp eax, ecx
jb 0x5827de
mov dword [esp + 0x2c], edx
test edx, edx
je 0x5827fb
mov dword [esp + 0x40], 0
xor ecx, ecx
mov byte [ecx + esi], 0
xor edi, edi
test edi, edi
jne 0x582835
movsx ecx, byte [esi]
xor edx, edx
test ecx, ecx
setne dl
mov eax, ebx
call fcn.00582d50
mov edi, eax
test edi, edi
jne 0x582835
movsx edx, byte [esi]
test edx, edx
je 0x582835
cmp dword [esp + 0x74], 0
je 0x582835
mov eax, ebx
mov edx, esi
call fcn.0057b640
mov edi, eax
mov eax, ebx
call fcn.00420a20
mov eax, edi
add esp, 0x84
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov edi, eax
mov ebx, dword [esp + 0x5c]
cmp edi, 0x65
jne 0x58267d
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0x48], edx
mov dword [ebx + 0x4c], eax
jmp 0x58240b
cmp edi, 0x65
jne 0x58267d
movzx eax, byte [ebx + 0xb]
mov byte [ebx + 0x12], al
jmp 0x58268c