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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x88
mov ebp, edx
mov dword [esp + 0x2c], ecx
mov edi, dword [esp + 0x9c]
mov esi, dword [esp + 0xa0]
movzx eax, byte [esp + 0xac]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
mov dword [ebp + 0x28], 0
mov dword [ebp + 0x24], 0
cmp byte [ebp + 0x36], 4
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
sete cl
cmp al, 4
setne dl
cmp dword [ebp], 0
mov byte [ebp + 0x36], al
jne 0x5edbc5
and dl, cl
jne 0x5edbc5
cmp dword [ebp + 0x1c], 0
jne 0x5ee728
cmp byte [ebp + 0x35], 0
jne 0x5ee728
mov eax, 0xb4fff
mov dword [esp + 0x20], ebp
and eax, dword [ebp + 8]
cmp eax, 0x4001
jne 0x5edbe9
mov esi, dword [ebp + 0x50]
mov eax, dword [ebp + 0x4c]
xor edx, edx
mov edi, esi
mov dword [esp + 8], eax
and edi, 0x7fff
cmp edx, dword [esp + 0xa0]
jb 0x5ed5de
cmp dword [esp + 8], 0
je 0x5ee605
cmp byte [ebp + 0x36], 0
je 0x5ee605
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 8]
mov ebx, 0x1000
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], esi
sub eax, edx
sub ebx, ecx
cmp eax, ebx
cmovb ebx, eax
test ebx, ebx
mov dword [esp + 0x18], ebx
je 0x5ed700
add esi, ecx
mov ebp, edx
jmp 0x5ed654
mov ecx, dword [esp + 0x20]
or esi, 0x8000
mov ecx, dword [ecx + 0x3c]
lea ecx, [ecx + esi + 0x20000]
push eax
push dword [esp + 0x14]
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x1c]
sub ebx, edi
mov ebp, edx
je 0x5ed700
and esi, 0x7fff
mov edi, 0x8000
sub edi, esi
cmp edi, ebx
cmovae edi, ebx
lea ecx, [edi + esi]
cmp ecx, 0x8103
jae 0x5ee818
mov edx, edi
add edx, ebp
jb 0x5ee82c
cmp edx, dword [esp + 0xa0]
mov dword [esp + 0x1c], ecx
mov dword [esp + 4], edx
ja 0x5ee838
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x9c]
mov eax, dword [eax + 0x3c]
add ecx, ebp
lea eax, [eax + esi + 0x20000]
push edi
mov dword [esp + 0x14], ecx
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp esi, 0x101
jae 0x5ed642
mov eax, 0x101
sub eax, esi
cmp edi, eax
cmovb eax, edi
lea ecx, [eax + esi + 0x8000]
cmp ecx, 0x8103
jae 0x5ee852
mov edx, eax
add edx, ebp
jb 0x5ee866
cmp edx, dword [esp + 0xa0]
jbe 0x5ed620
jmp 0x5ee872
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
mov eax, 0x8000
add esi, dword [esp + 8]
mov ecx, dword [ebp + 0x54]
sub eax, esi
cmp eax, ecx
cmovae eax, ecx
mov dword [ebp + 0x54], eax
cmp byte [ebp + 0x36], 0
jne 0x5ed730
cmp esi, 0x1000
jb 0x5ee5fd
mov edi, dword [esp + 0x14]
cmp esi, 4
mov dword [esp + 4], edx
jae 0x5ed851
mov ebx, esi
test esi, esi
mov esi, dword [esp + 0xc]
mov dword [esp + 8], 0
jne 0x5ed771
jmp 0x5ed5c0
inc edi
mov ebx, eax
and edi, 0x7fff
test eax, eax
je 0x5ed5c0
mov eax, dword [ebp + 0x3c]
movzx eax, byte [eax + edi + 0x20000]
inc dword [ebp + 0x10060]
mov ecx, dword [ebp + 0x10058]
cmp ecx, 0x10000
jae 0x5ee7a4
mov byte [ebp + ecx + 0x58], al
inc dword [ebp + 0x10058]
mov ecx, dword [ebp + 0x1005c]
cmp ecx, 0x10000
jae 0x5ee7ba
shr byte [ebp + ecx + 0x58], 1
dec dword [ebp + 0x10064]
jne 0x5ed7d9
mov dword [ebp + 0x10064], 8
mov ecx, dword [ebp + 0x10058]
mov dword [ebp + 0x1005c], ecx
inc ecx
mov dword [ebp + 0x10058], ecx
mov ecx, dword [ebp + 0x38]
movzx eax, al
inc esi
inc word [ecx + eax*2]
mov ecx, 0x8000
mov eax, dword [ebp + 0x54]
inc eax
cmp eax, 0x8000
cmovae eax, ecx
mov dword [ebp + 0x54], eax
mov eax, ebx
dec eax
cmp dword [ebp + 0x10058], 0xfff8
jbe 0x5ed760
lea edx, [esp + 0x6c]
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], esi
mov ecx, ebp
push 0
call fcn.005eebd0
add esp, 4
test eax, eax
jne 0x5ee5ab
test edx, edx
jne 0x5ee59e
mov eax, dword [ebp + 0x4c]
mov esi, dword [ebp + 0x50]
mov edx, dword [esp + 4]
jmp 0x5ed760
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x18]
cmp esi, 3
jbe 0x5ed741
mov eax, dword [ebp + 0x3c]
mov ecx, edi
mov dword [esp + 0x18], esi
and ecx, 0x7fff
mov esi, dword [eax + ecx + 0x20000]
mov ecx, esi
mov dword [esp + 0x1c], esi
and esi, 0xfff
and ecx, 0xffffff
mov edx, ecx
shr edx, 0x11
xor esi, edx
mov edx, dword [esp + 0xc]
movzx ebx, word [eax + esi*2 + 0x10000]
mov word [eax + esi*2 + 0x10000], dx
sub edx, ebx
movzx eax, dx
cmp dword [ebp + 0x54], eax
jb 0x5ed840
mov esi, dword [ebp + 0x3c]
mov dword [esp + 0x10], edx
movzx edx, bx
mov dword [esp + 0x14], edi
mov dword [esp + 8], eax
mov eax, 0xffffff
and edx, 0x7fff
mov edi, dword [esi + edx + 0x20000]
and edi, eax
cmp ecx, edi
jne 0x5ed950
mov eax, dword [esp + 0x14]
lea edi, [esi + edx + 0x20003]
lea ebp, [esi + eax + 0x20003]
xor esi, esi
mov eax, dword [esp + 0x14]
lea ecx, [eax + esi + 3]
lea edx, [eax + esi + 0xb]
cmp ecx, 0xfffffff7
ja 0x5ee7f8
cmp edx, 0x8102
ja 0x5ee802
mov eax, dword [edi + esi]
mov edx, dword [edi + esi + 4]
xor eax, dword [ebp + esi]
xor edx, dword [ebp + esi + 4]
mov ecx, eax
or ecx, edx
jne 0x5ed98c
add esi, 8
cmp esi, 0x100
jne 0x5ed8e0
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
mov esi, 0x102
cmp bx, ax
mov ebx, eax
je 0x5ed9ca
jmp 0x5edabd
mov ecx, dword [ebp + 0x10058]
mov edi, dword [esp + 0x14]
cmp ecx, 0x10000
jae 0x5ee7a4
mov eax, dword [esp + 0x1c]
mov byte [ebp + ecx + 0x58], al
inc dword [ebp + 0x10058]
mov ecx, dword [ebp + 0x1005c]
cmp ecx, 0x10000
jae 0x5ee7ba
mov ebx, dword [esp + 0xc]
jmp 0x5ed9fc
tzcnt edx, edx
tzcnt ecx, eax
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0xc]
add edx, 0x20
test eax, eax
cmovne edx, ecx
shr edx, 3
add edx, esi
mov esi, edx
add esi, 3
jb 0x5ed9ca
test edx, edx
jne 0x5edabd
cmp dword [esp + 8], 0x1fff
jbe 0x5edabd
mov ecx, dword [ebp + 0x10058]
cmp ecx, 0x10000
jae 0x5ee7a4
mov eax, dword [esp + 0x1c]
mov byte [ebp + ecx + 0x58], al
inc dword [ebp + 0x10058]
mov ecx, dword [ebp + 0x1005c]
cmp ecx, 0x10000
jae 0x5ee7ba
shr byte [ebp + ecx + 0x58], 1
movzx ecx, al
mov esi, 1
mov eax, dword [ebp + 0x38]
inc word [eax + ecx*2]
dec dword [ebp + 0x10064]
je 0x5eda1f
mov eax, dword [ebp + 0x10058]
jmp 0x5eda3c
mov dword [ebp + 0x10064], 8
mov eax, dword [ebp + 0x10058]
mov dword [ebp + 0x1005c], eax
inc eax
mov dword [ebp + 0x10058], eax
add dword [ebp + 0x10060], esi
add ebx, esi
mov edx, 0x8000
mov ecx, dword [ebp + 0x54]
add ecx, esi
cmp ecx, 0x8000
cmovae ecx, edx
mov edx, dword [esp + 0x18]
add edi, esi
and edi, 0x7fff
mov dword [ebp + 0x54], ecx
sub edx, esi
cmp eax, 0xfff8
mov esi, edx
jbe 0x5edab0
lea edx, [esp + 0x6c]
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x50], ebx
mov ecx, ebp
push 0
call fcn.005eebd0
add esp, 4
test eax, eax
jne 0x5ee5d8
test edx, edx
jne 0x5ee59e
mov eax, dword [ebp + 0x50]
mov esi, dword [ebp + 0x4c]
mov edx, dword [esp + 4]
mov dword [esp + 0xc], eax
jmp 0x5ed848
mov edx, dword [esp + 4]
mov dword [esp + 0xc], ebx
jmp 0x5ed848
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 0x10058]
cmp esi, eax
cmovae esi, eax
cmp edx, 0x10000
jae 0x5ee7a2
lea ecx, [esi - 3]
mov byte [ebp + edx + 0x58], cl
mov edx, dword [ebp + 0x10058]
inc edx
cmp edx, 0x10000
mov dword [ebp + 0x10058], edx
jae 0x5ee7a2
mov eax, dword [esp + 0x10]
dec eax
mov byte [ebp + edx + 0x58], al
mov edx, dword [ebp + 0x10058]
inc edx
cmp edx, 0x10000
mov dword [ebp + 0x10058], edx
jae 0x5ee7a2
movzx edi, ax
mov ebx, edi
shr ebx, 8
mov byte [ebp + edx + 0x58], bl
inc dword [ebp + 0x10058]
mov edx, dword [ebp + 0x1005c]
cmp edx, 0x10000
jae 0x5ee7b8
shr byte [ebp + edx + 0x58], 1
mov edx, dword [ebp + 0x1005c]
cmp edx, 0x10000
jae 0x5ee7b8
or byte [ebp + edx + 0x58], 0x80
cmp edi, 0x200
jae 0x5edb69
lea eax, [edi + 0x8b8e14]
jmp 0x5edb7b
movzx edx, bx
test ax, ax
js 0x5ee7e2
lea eax, [edx + 0x8b8d04]
movzx eax, byte [eax]
mov edx, dword [ebp + 0x38]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0xc]
inc word [edx + eax*2 + 0x240]
cmp ecx, 0x100
jae 0x5ee7ce
movzx ecx, word [esi + esi + 0x8b89de]
cmp ecx, 0x120
jb 0x5eda08
mov edx, 0x120
push 0x8b93f4
call fcn.00709fa0
add esp, 4
ud2
mov eax, dword [esp + 0x2c]
mov dword [ebp], 0xfffffffe
mov dword [eax], 0xfffffffe
mov dword [eax + 4], 0
mov dword [eax + 8], 0
jmp 0x5ee755
mov ecx, dword [ebp + 0x10]
movzx eax, byte [ebp + 0x37]
mov edx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x4c]
mov ebx, dword [ebp + 0x50]
mov dword [esp + 0x14], 0
mov dword [esp + 0x38], ecx
lea ecx, [ebp + 0x58]
mov byte [esp + 3], al
mov dword [esp + 0xc], edx
mov dword [esp + 0x3c], ecx
jmp 0x5edc4e
mov eax, dword [esp + 0x14]
mov ecx, ebp
lea edx, [esp + 0x6c]
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x50], ebx
push 0
call fcn.005eebd0
add esp, 4
neg eax
mov eax, 0
sbb eax, eax
or eax, edx
jne 0x5ee5bb
mov esi, dword [esp + 0x14]
cmp esi, dword [esp + 0xa0]
jb 0x5edc6d
cmp byte [ebp + 0x36], 0
je 0x5ee57d
test edi, edi
je 0x5ee57d
mov ecx, dword [esp + 0xa0]
mov edx, dword [ebp + 0x54]
mov eax, 0x102
mov dword [esp + 0x10], ebx
sub eax, edi
sub ecx, esi
cmp ecx, eax
cmovb eax, ecx
add edx, edi
cmp edx, 2
jb 0x5edd90
test eax, eax
je 0x5edd90
mov edx, eax
add edx, esi
jb 0x5ee8a3
cmp edx, dword [esp + 0xa0]
mov dword [esp + 0x18], edx
ja 0x5ee8ac
mov edx, dword [ebp + 0x3c]
lea esi, [edi + ebx - 1]
lea ecx, [edi + ebx - 2]
and esi, 0x7fff
mov dword [esp + 4], edx
mov edx, edi
mov edi, ecx
mov ebx, dword [esp + 4]
and edi, 0x7fff
movzx ebx, byte [ebx + edi + 0x20000]
mov edi, dword [esp + 4]
movzx esi, byte [edi + esi + 0x20000]
shl ebx, 5
xor ebx, esi
mov esi, dword [esp + 0x10]
lea edi, [edx + esi]
add edx, eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x14]
add edx, dword [esp + 0x9c]
jmp 0x5edd57
movzx edx, dl
shl ebx, 5
inc edi
movzx esi, dx
and ebx, 0x7fe0
mov edx, ecx
xor esi, ebx
mov ebx, dword [ebp + 0x3c]
and edx, 0x7fff
movzx ebp, word [ebx + esi*2 + 0x10000]
mov word [ebx + edx*2], bp
mov ebp, dword [esp + 0x20]
mov ebx, esi
mov edx, dword [ebp + 0x3c]
mov word [edx + esi*2 + 0x10000], cx
mov edx, dword [esp + 0x14]
inc ecx
inc edx
dec eax
je 0x5edea0
mov dword [esp + 0x14], edx
movzx edx, byte [edx]
mov esi, dword [ebp + 0x3c]
and edi, 0x7fff
cmp edi, 0x101
mov byte [esi + edi + 0x20000], dl
jae 0x5edd10
mov esi, dword [ebp + 0x3c]
mov byte [esi + edi + 0x28000], dl
jmp 0x5edd10
mov edx, eax
add edx, esi
jb 0x5ee8c6
cmp edx, dword [esp + 0xa0]
ja 0x5ee8cf
test eax, eax
je 0x5edebc
add esi, dword [esp + 0x9c]
lea ecx, [edi + ebx]
mov dword [esp + 8], edx
mov dword [esp + 0x1c], edi
mov dword [esp + 4], ecx
lea ecx, [edi + ebx - 2]
mov dword [esp + 0x18], ecx
xor ecx, ecx
mov dword [esp + 0x14], esi
jmp 0x5edded
mov esi, dword [esp + 0x14]
inc ecx
cmp eax, ecx
je 0x5edeb0
movzx edx, byte [esi + ecx]
mov esi, dword [esp + 4]
mov ebx, dword [ebp + 0x3c]
add esi, ecx
and esi, 0x7fff
cmp esi, 0x101
mov byte [ebx + esi + 0x20000], dl
jae 0x5ede19
mov ebx, dword [ebp + 0x3c]
mov byte [ebx + esi + 0x28000], dl
mov esi, dword [ebp + 0x54]
lea ebx, [edi + ecx]
lea esi, [esi + ebx + 1]
cmp esi, 2
jbe 0x5edde0
mov edi, dword [esp + 0x20]
movzx ebp, dl
mov edx, dword [esp + 0x18]
mov ebx, dword [edi + 0x3c]
mov edi, dword [esp + 4]
lea esi, [edx + ecx]
mov edx, esi
and edx, 0x7fff
lea edi, [edi + ecx - 1]
and edi, 0x7fff
movzx edi, byte [ebx + edi + 0x20000]
shl edi, 5
xor edi, ebp
movzx ebp, byte [ebx + edx + 0x20000]
and ebp, 0x1f
shl ebp, 0xa
xor ebp, edi
movzx edi, word [ebx + ebp*2 + 0x10000]
mov word [ebx + edx*2], di
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov edx, dword [edx + 0x3c]
mov word [edx + ebp*2 + 0x10000], si
mov ebp, dword [esp + 0x20]
jmp 0x5edde0
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
jmp 0x5edec0
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x10]
add edi, ecx
jmp 0x5edec0
mov esi, edx
nop
mov eax, dword [ebp + 0x54]
mov ecx, 0x8000
sub ecx, edi
cmp ecx, eax
cmovae ecx, eax
mov dword [ebp + 0x54], ecx
mov dword [esp + 0x18], ecx
cmp byte [ebp + 0x36], 0
jne 0x5edee8
cmp edi, 0x102
jb 0x5ee57d
mov eax, dword [esp + 0xc]
mov edx, dword [ebp + 8]
mov ecx, ebx
mov dword [esp + 0x14], esi
test eax, eax
mov ebx, eax
mov eax, 2
mov dword [esp + 0x40], edx
cmove ebx, eax
and ecx, 0x7fff
test edx, 0x90000
mov dword [esp + 0x28], ecx
je 0x5edfb0
cmp dword [esp + 0x18], 0
mov dword [esp + 8], 0
je 0x5ee28c
mov eax, dword [esp + 0x40]
and eax, 0x80000
jne 0x5ee28c
mov ecx, dword [esp + 0x28]
mov edx, edi
add edx, ecx
jb 0x5ee901
mov eax, dword [esp + 0x10]
cmp edx, 0x8102
ja 0x5ee910
test edi, edi
je 0x5ee276
lea ecx, [eax - 1]
mov eax, dword [ebp + 0x3c]
xor ebx, ebx
and ecx, 0x7fff
movzx ecx, byte [eax + ecx + 0x20000]
add eax, 0x20000
add eax, dword [esp + 0x28]
nop word cs:[eax + eax]
nop dword [eax]
cmp byte [eax + ebx], cl
jne 0x5ee278
inc ebx
cmp edi, ebx
jne 0x5edf90
mov ebx, edi
jmp 0x5ee278
cmp edi, 0x102
mov eax, 0x102
mov dword [esp + 8], 0
cmovb eax, edi
cmp eax, ebx
jbe 0x5ee28c
lea edx, [ecx + ebx - 1]
mov dword [esp + 0x48], eax
cmp edx, 0x8101
ja 0x5ee789
xor eax, eax
cmp ebx, 0x20
setae al
mov edx, dword [ebp + eax*4 + 0x40]
dec edx
je 0x5ee28c
mov esi, dword [ebp + 0x3c]
lea eax, [ecx + ebx]
mov dword [esp + 0x30], edx
mov edx, 0x8100
mov dword [esp + 8], 0
mov dword [esp + 4], eax
sub edx, ecx
movzx eax, word [esi + ecx + 0x20000]
mov word [esp + 0x46], ax
mov eax, dword [esp + 4]
mov dword [esp + 4], esi
movzx eax, word [esi + eax + 0x1ffff]
mov word [esp + 0x26], ax
lea eax, [esi + 0x20002]
mov dword [esp + 0x60], eax
lea eax, [esi + ecx + 0x20002]
mov esi, edx
mov edx, dword [esp + 0x30]
and esi, 0xfffffff8
mov dword [esp + 0x5c], eax
mov dword [esp + 0x68], esi
mov eax, 1
sub eax, edx
mov edx, eax
nop
mov eax, dword [esp + 4]
movzx ecx, word [eax + ecx*2]
test ecx, ecx
je 0x5ee54d
mov eax, dword [esp + 0x10]
sub eax, ecx
movzx eax, ax
cmp eax, dword [esp + 0x18]
mov dword [esp + 0x34], eax
ja 0x5ee54d
and ecx, 0x7fff
mov dword [esp + 0x30], edx
lea edx, [ecx + ebx - 1]
cmp edx, 0x8101
ja 0x5ee789
mov esi, dword [esp + 4]
movzx eax, word [esp + 0x26]
lea edx, [ecx + ebx]
cmp word [esi + edx + 0x1ffff], ax
je 0x5ee108
movzx ecx, word [esi + ecx*2]
mov edx, esi
test ecx, ecx
je 0x5ee54d
mov eax, dword [esp + 0x10]
sub eax, ecx
movzx eax, ax
cmp eax, dword [esp + 0x18]
mov dword [esp + 0x34], eax
ja 0x5ee54d
and ecx, 0x7fff
lea edx, [ecx + ebx - 1]
cmp edx, 0x8101
ja 0x5ee789
mov esi, dword [esp + 4]
movzx eax, word [esp + 0x26]
lea edx, [ecx + ebx]
cmp word [esi + edx + 0x1ffff], ax
jne 0x5ee140
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x34], 0
je 0x5ee54d
mov esi, dword [esp + 4]
movzx eax, word [esp + 0x46]
cmp word [esi + ecx + 0x20000], ax
je 0x5ee19a
inc edx
cmp edx, 1
jne 0x5ee060
jmp 0x5ee54d
movzx ecx, word [esi + ecx*2]
mov edx, esi
test ecx, ecx
je 0x5ee54d
mov eax, dword [esp + 0x10]
sub eax, ecx
movzx eax, ax
cmp eax, dword [esp + 0x18]
mov dword [esp + 0x34], eax
ja 0x5ee54d
and ecx, 0x7fff
lea edx, [ecx + ebx - 1]
cmp edx, 0x8101
ja 0x5ee789
mov esi, dword [esp + 4]
movzx eax, word [esp + 0x26]
lea edx, [ecx + ebx]
cmp word [esi + edx + 0x1ffff], ax
mov edx, dword [esp + 0x30]
jne 0x5ee12a
jmp 0x5ee10c
mov eax, dword [esp + 0x60]
mov edx, 0x8100
mov dword [esp + 0x1c], edi
xor edi, edi
sub edx, ecx
and edx, 0xfffffff8
mov dword [esp + 0x4c], edx
add eax, ecx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x5c]
nop dword [eax]
cmp edi, 0x100
je 0x5ee53d
mov edx, dword [esp + 0x68]
cmp edx, edi
je 0x5ee8e7
cmp dword [esp + 0x4c], edi
je 0x5ee8f4
mov edx, dword [esp + 0x64]
mov esi, dword [edx + edi]
mov edx, dword [edx + edi + 4]
xor esi, dword [eax + edi]
xor edx, dword [eax + edi + 4]
add edi, 8
mov ebp, esi
or ebp, edx
mov ebp, dword [esp + 0x20]
je 0x5ee1c0
tzcnt edx, edx
tzcnt ebp, esi
add edx, 0x20
test esi, esi
cmovne edx, ebp
mov ebp, dword [esp + 0x20]
shr edx, 3
lea esi, [edx + edi - 6]
mov edi, dword [esp + 0x1c]
cmp esi, ebx
jbe 0x5ee265
mov edx, dword [esp + 0x48]
cmp edx, esi
cmovb esi, edx
jbe 0x5ee569
mov ebx, dword [esp + 0x28]
lea edx, [esi + ebx - 1]
cmp edx, 0x8102
jae 0x5ee789
lea edx, [esi + ebx]
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x34]
movzx edx, word [ebx + edx + 0x1ffff]
mov ebx, esi
mov dword [esp + 8], eax
mov word [esp + 0x26], dx
mov edx, dword [esp + 0x30]
neg edx
jb 0x5ee056
jmp 0x5ee54d
xor ebx, ebx
xor eax, eax
cmp ebx, 3
mov ecx, 0
setae al
cmovb ebx, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
shr eax, 0x11
cmp ebx, 6
setb cl
and cl, al
mov eax, dword [esp + 8]
cmp dword [esp + 0x28], eax
sete al
or al, cl
mov ecx, 0
test al, 1
mov eax, ebx
cmovne eax, ecx
je 0x5ee2d0
cmp dword [esp + 0xc], 0
je 0x5ee3b0
mov eax, dword [ebp + 0x38]
jmp 0x5ee350
cmp dword [esp + 0xc], 0
je 0x5ee377
cmp ebx, dword [esp + 0xc]
mov eax, dword [ebp + 0x38]
jbe 0x5ee350
inc dword [ebp + 0x10060]
mov edx, dword [ebp + 0x10058]
cmp edx, 0x10000
jae 0x5ee7a2
movzx ecx, byte [esp + 3]
mov byte [ebp + edx + 0x58], cl
inc dword [ebp + 0x10058]
mov edx, dword [ebp + 0x1005c]
cmp edx, 0x10000
jae 0x5ee7b8
shr byte [ebp + edx + 0x58], 1
dec dword [ebp + 0x10064]
je 0x5ee435
movzx ecx, byte [esp + 3]
inc word [eax + ecx*2]
cmp ebx, 0x80
jae 0x5ee463
jmp 0x5ee483
mov edx, dword [esp + 0x3c]
mov ecx, eax
push dword [esp + 0x38]
mov esi, dword [esp + 0x10]
push esi
call fcn.005eea30
add esp, 8
dec esi
mov dword [esp + 0xc], 0
mov eax, esi
jmp 0x5ee4b0
cmp dword [esp + 8], 0
je 0x5ee3b0
test dword [esp + 0x40], 0x10000
jne 0x5ee397
cmp byte [ebp + 0x34], 0
jne 0x5ee397
cmp eax, 0x7f
jbe 0x5ee483
mov ecx, dword [ebp + 0x38]
mov edx, dword [esp + 0x3c]
push dword [esp + 8]
push eax
jmp 0x5ee46f
mov ecx, dword [ebp + 0x3c]
mov edx, dword [esp + 0x28]
mov eax, dword [ebp + 0x38]
movzx edx, byte [ecx + edx + 0x20000]
inc dword [ebp + 0x10060]
mov ecx, dword [ebp + 0x10058]
cmp ecx, 0x10000
jae 0x5ee7a4
mov byte [ebp + ecx + 0x58], dl
inc dword [ebp + 0x10058]
mov ecx, dword [ebp + 0x1005c]
cmp ecx, 0x10000
jae 0x5ee7ba
shr byte [ebp + ecx + 0x58], 1
dec dword [ebp + 0x10064]
jne 0x5ee41f
mov dword [ebp + 0x10064], 8
mov ecx, dword [ebp + 0x10058]
mov dword [ebp + 0x1005c], ecx
inc ecx
mov dword [ebp + 0x10058], ecx
movzx ecx, dl
mov dword [esp + 0xc], 0
inc word [eax + ecx*2]
mov eax, 1
jmp 0x5ee4b0
mov dword [ebp + 0x10064], 8
mov ecx, dword [ebp + 0x10058]
mov dword [ebp + 0x1005c], ecx
inc ecx
mov dword [ebp + 0x10058], ecx
movzx ecx, byte [esp + 3]
inc word [eax + ecx*2]
cmp ebx, 0x80
jb 0x5ee483
mov ecx, dword [ebp + 0x38]
mov edx, dword [esp + 0x3c]
push dword [esp + 8]
push ebx
call fcn.005eea30
add esp, 8
mov dword [esp + 0xc], 0
mov eax, ebx
jmp 0x5ee4b0
mov eax, dword [ebp + 0x3c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc], ebx
movzx eax, byte [eax + ecx + 0x20000]
mov ecx, dword [esp + 8]
mov byte [esp + 3], al
mov eax, 1
mov dword [esp + 0x38], ecx
nop word [eax + eax]
mov ebx, dword [esp + 0x10]
sub edi, eax
jb 0x5ee88a
mov ecx, dword [ebp + 0x54]
mov edx, 0x8000
add ecx, eax
cmp ecx, 0x8000
cmovae ecx, edx
mov dword [ebp + 0x54], ecx
mov edx, dword [ebp + 0x10060]
mov ecx, dword [ebp + 0x10058]
cmp edx, 0x7c00
jbe 0x5ee520
movzx ebx, byte [ebp + 0xa]
imul esi, ecx, 0x73
shr esi, 7
and bl, 8
shr bl, 3
cmp esi, edx
mov esi, dword [esp + 0x10]
setae dl
or dl, bl
mov ebx, esi
add ebx, eax
cmp ecx, 0xfff8
jbe 0x5ee530
jmp 0x5edc20
xor edx, edx
add ebx, eax
cmp ecx, 0xfff8
ja 0x5edc20
test dl, dl
je 0x5edc4e
jmp 0x5edc20
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x1c]
mov dword [esp + 8], eax
cmp ebx, 3
jne 0x5ee28c
cmp dword [esp + 8], 0x1fff
ja 0x5ee2b6
jmp 0x5ee28c
mov eax, dword [esp + 0x34]
mov ebx, esi
mov dword [esp + 8], eax
cmp ebx, 3
je 0x5ee556
jmp 0x5ee28c
movzx eax, byte [esp + 3]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0xc]
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x50], ebx
mov byte [ebp + 0x37], al
mov dword [ebp + 0x10], edx
mov dword [ebp + 0x14], ecx
jmp 0x5ee612
mov esi, dword [esp + 4]
test edx, edx
mov dword [ebp + 0x24], esi
jg 0x5ee612
jmp 0x5ee5e6
mov esi, dword [esp + 4]
mov dword [ebp], 0xffffffff
mov dword [ebp + 0x24], esi
jmp 0x5ee5e6
movzx eax, byte [esp + 3]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0xc]
mov byte [ebp + 0x37], al
mov dword [ebp + 0x10], edx
mov dword [ebp + 0x14], ecx
jg 0x5ee612
mov esi, dword [ebp + 0x24]
jmp 0x5ee5e6
mov esi, dword [esp + 4]
mov dword [ebp + 0x24], esi
mov dword [ebp], 0xffffffff
mov eax, dword [ebp]
mov edx, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x28]
mov dword [edx], eax
mov dword [edx + 4], esi
mov dword [edx + 8], ecx
jmp 0x5ee755
mov eax, esi
mov esi, dword [esp + 0xc]
jmp 0x5ee609
mov eax, dword [esp + 8]
mov dword [ebp + 0x24], edx
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], esi
test byte [ebp + 9], 0x30
je 0x5ee68a
mov esi, dword [ebp + 0x24]
cmp esi, dword [esp + 0xa0]
ja 0x5ee926
mov ebx, dword [ebp + 0x20]
mov eax, dword [0x919880]
test eax, eax
je 0x5ee775
and eax, 0x8000
xor edx, edx
mov ecx, 0x6a0000
or eax, edx
jne 0x5ee66b
mov eax, dword [0x919880]
test eax, eax
je 0x5ee77f
and eax, 0x200
xor ecx, ecx
or eax, ecx
mov eax, 0x69fd30
mov ecx, 0x69ffe0
cmove ecx, eax
mov eax, ebx
shr eax, 0x10
push esi
push dword [esp + 0xa0]
push eax
push ebx
call ecx
add esp, 0x10
movzx eax, ax
shl edx, 0x10
or edx, eax
mov dword [ebp + 0x20], edx
movzx eax, byte [ebp + 0x36]
test al, al
je 0x5ee728
cmp dword [ebp + 0x4c], 0
jne 0x5ee728
mov ecx, dword [esp + 0xa0]
cmp dword [ebp + 0x24], ecx
jne 0x5ee728
cmp dword [ebp + 0x1c], 0
jne 0x5ee728
movzx eax, al
lea edx, [esp + 0x6c]
mov ecx, ebp
push eax
call fcn.005eebd0
add esp, 4
test eax, eax
je 0x5ee6e5
mov dword [ebp], 0xffffffff
mov eax, dword [esp + 0x2c]
movsd xmm0, qword [ebp + 0x24]
mov dword [eax], 0xffffffff
movsd qword [eax + 4], xmm0
jmp 0x5ee755
test edx, edx
js 0x5ee760
movzx eax, byte [ebp + 0x36]
cmp al, 4
sete byte [ebp + 0x35]
cmp al, 3
jne 0x5ee728
mov eax, 0x10000
add eax, dword [ebp + 0x3c]
push 0x10000
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 0x10000
push 0
push dword [ebp + 0x3c]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp + 0x54], 0
lea ecx, [esp + 0x50]
lea edx, [esp + 0x6c]
push ebp
call fcn.005ee940
add esp, 4
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
movsd xmm0, qword [esp + 0x50]
mov dword [ebp], eax
mov dword [ecx + 8], edx
movsd qword [ecx], xmm0
add esp, 0x88
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp]
mov ecx, dword [esp + 0x2c]
movsd xmm0, qword [ebp + 0x24]
mov dword [ecx], eax
movsd qword [ecx + 4], xmm0
jmp 0x5ee755
call fcn.007223e0
jmp 0x5ee638
call fcn.007223e0
jmp 0x5ee655
mov ecx, 0xffffffff
mov edx, 0x8102
push 0x8b8950
call fcn.00709fa0
add esp, 4
ud2
mov ecx, edx
mov edx, 0x10000
push 0x8b8970
call fcn.00709fa0
add esp, 4
ud2
mov ecx, edx
mov edx, 0x10000
push 0x8b8980
call fcn.00709fa0
add esp, 4
ud2
mov edx, pe_nt_image_headers32
push 0x8b93e4
call fcn.00709fa0
add esp, 4
ud2
mov ecx, edx
mov edx, 0x80
push 0x8b93d4
call fcn.00709fa0
add esp, 4
ud2
push 0x8b8940
jmp 0x5ee906
mov ecx, edx
mov edx, 0x8102
push 0x8b8940
call fcn.0070a080
add esp, 4
ud2
mov edx, 0x8102
push 0x8b9404
call fcn.0070a080
add esp, 4
ud2
mov ecx, ebp
push 0x8b9414
jmp 0x5ee906
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xa0]
push 0x8b9414
call fcn.0070a080
add esp, 4
ud2
mov edx, 0x8102
push 0x8b9424
call fcn.0070a080
add esp, 4
ud2
mov ecx, ebp
push 0x8b9434
jmp 0x5ee906
mov ecx, edx
mov edx, dword [esp + 0xa0]
push 0x8b9434
call fcn.0070a080
add esp, 4
ud2
mov ecx, str.assertion_failed:_lookahead_size___len_to_move
mov edx, 0x2f
push 0x8b93c4
call fcn.0070a0f0
add esp, 4
ud2
mov ecx, esi
push 0x8b9374
jmp 0x5ee906
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xa0]
push 0x8b9374
call fcn.0070a080
add esp, 4
ud2
mov ecx, esi
push 0x8b9364
jmp 0x5ee906
mov ecx, edx
mov edx, dword [esp + 0xa0]
push 0x8b9364
call fcn.0070a080
add esp, 4
ud2
mov eax, dword [esp + 0x28]
lea ecx, [eax + edx + 0xa]
jmp 0x5ee804
mov eax, dword [esp + 0x4c]
lea ecx, [ecx + eax + 0xa]
jmp 0x5ee804
push 0x8b9384
call fcn.0070a2f0
add esp, 4
ud2
mov ecx, edx
mov edx, 0x8102
push 0x8b9384
call fcn.0070a080
add esp, 4
ud2
mov edx, dword [esp + 0xa0]
mov ecx, esi
push 0x8b9464
call fcn.0070a080
add esp, 4
ud2