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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x118
mov ebx, edx
mov edi, ecx
call 0x5b5148
pop esi
call fcn.005b9350
cmp dword [edi + 0x152c], 0xffffffff
jne 0x5b5179
mov eax, dword [edi + 0x14e8]
mov dword [esp + 0xf0], ebx
lea ecx, [eax - 3]
cmp ecx, 2
jb 0x5b5179
mov ecx, dword [ebp + 8]
test eax, eax
mov ebx, dword [ecx]
je 0x5b5185
test ebx, ebx
je 0x5b5185
xor ebx, ebx
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x10], edi
mov dword [esp], ebx
cmp eax, 1
ja 0x5b52b9
cmp byte [edi + 0x5c], 0
jne 0x5b52b9
movzx ecx, byte [edi + 0x20]
mov edx, 1
mov esi, 0x20000
mov dword [esp + 0x3c], 0
mov dword [esp + 0x4c], 1
mov dword [esp + 0x54], 4
shl edx, cl
cmp ebx, edx
mov ecx, edx
mov dword [esp + 0x20], edx
cmovb ecx, ebx
cmp ecx, 0x20000
cmovb esi, ecx
cmp eax, 1
jne 0x5b8606
mov edx, dword [edi + 0xdc]
cmp ecx, 0x20000
jb 0x5b861c
test edx, edx
jne 0x5b861c
mov ecx, 8
mov edx, 0x80000
call fcn.0071ee80
test eax, eax
je 0x5b8eb0
mov ebx, dword [esp + 0x10]
mov edi, eax
cmp dword [ebx + 0xdc], 0
je 0x5b523b
push dword [ebx + 0xd8]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ecx, 8
mov edx, 0x20000
mov dword [ebx + 0xd8], edi
mov dword [ebx + 0xdc], 0x20000
call fcn.0071ee80
test eax, eax
mov dword [esp + 0x4c], eax
je 0x5b8ef5
cmp dword [ebx + 0xe4], 0
mov edi, ebx
je 0x5b5285
push dword [edi + 0xe0]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x3c], 0x20000
mov dword [edi + 0xe0], eax
mov dword [edi + 0xe4], 0x20000
mov edx, dword [edi + 0xdc]
test edx, edx
jne 0x5b8634
mov edi, 0x80000
jmp 0x5b86a7
lea edx, [edi + 0x153a]
lea ecx, [edi + 8]
lea eax, [edi + 0x14ec]
mov dword [esp + 0x5c], esi
mov dword [esp + 0xe8], edx
mov dword [esp + 0x64], ecx
lea edx, [edi + 0x1530]
lea ecx, [edi + 0x1514]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xe4], edx
mov dword [esp + 0x54], ecx
lea edx, [edi + 0x68]
lea ecx, [edi + 0x6c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], ecx
lea edx, [edi + 0x70]
lea ecx, [edi + 0x74]
mov dword [esp + 0x34], edx
mov dword [esp + 0x50], ecx
lea edx, [edi + 0x80]
lea ecx, [edi + 0x98]
mov dword [esp + 0xd4], edx
mov dword [esp + 0xc4], ecx
lea edx, [edi + 0x7c]
lea ecx, [edi + 0x30]
mov dword [esp + 0x44], edx
mov dword [esp + 0x30], ecx
lea edx, [edi + 0x151c]
lea ecx, [edi + 0x100]
mov dword [esp + 0x4c], edx
mov dword [esp + 0xcc], ecx
lea edx, [edi + 0x1518]
lea ecx, [edi + 0x140]
mov dword [esp + 0xec], edx
mov dword [esp + 0xe0], ecx
lea edx, [edi + 0x150]
lea ecx, [edi + 0xd0]
mov dword [esp + 0x110], edx
mov dword [esp + 0x10c], ecx
lea edx, [edi + 0x1150]
lea ecx, [edi + 0x11d0]
mov dword [esp + 0x104], edx
mov dword [esp + 0x100], ecx
lea edx, [edi + 0x1524]
lea ecx, [edi + 0x12d0]
mov dword [esp + 0xfc], edx
mov dword [esp + 0xf8], ecx
jmp 0x5b53db
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x14]
add ecx, edx
sub ebx, edx
mov dword [eax], ecx
mov ecx, dword [ebp + 8]
mov dword [ecx], ebx
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp], eax
mov ebx, dword [edi + 0xe8]
mov esi, edi
mov edi, dword [edi + 0xec]
mov ecx, esi
sub ebx, dword [esi + 0xf8]
sbb edi, dword [esi + 0xfc]
call fcn.005b9350
movzx ecx, byte [esi + 0x24]
mov eax, 1
mov esi, ebx
shl eax, cl
sub esi, eax
neg esi
cmp ebx, eax
mov ebx, dword [esp]
mov eax, 0
sbb edi, 0
cmovae esi, eax
test esi, esi
je 0x5b5510
test ebx, ebx
je 0x5b5510
mov eax, dword [ebp + 0x14]
cmp esi, ebx
cmovae esi, ebx
mov ecx, dword [eax]
mov eax, dword [ebp + 0x10]
sub eax, ecx
jb 0x5b8d0c
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
add eax, ecx
mov ecx, ebx
mov dword [esp + 0x2c], eax
call fcn.005b9350
mov edx, dword [ebx + 0x1508]
mov ecx, dword [ebx + 0x14fc]
mov dword [esp + 4], esi
test edx, edx
jne 0x5b56c0
cmp ecx, esi
jbe 0x5b56c0
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xd0]
mov ecx, esi
mov dword [edi + 0x1508], esi
call fcn.005d0070
mov ecx, dword [edi + 0x150c]
mov eax, ecx
add eax, esi
jb 0x5b8d19
mov edx, dword [edi + 0x14f0]
mov ebx, dword [esp]
cmp eax, edx
ja 0x5b8d25
mov edx, dword [esp + 8]
cmp esi, edx
ja 0x5b8d31
mov edi, dword [esp + 0x10]
add ecx, dword [edi + 0x14ec]
push esi
push dword [esp + 0x30]
push ecx
call fcn.007bd9b0
add esp, 0xc
mov ecx, esi
mov esi, dword [edi + 0x1508]
mov eax, dword [ebp + 0x14]
add dword [edi + 0xe8], ecx
adc dword [edi + 0xec], 0
cmp esi, dword [edi + 0x14f8]
ja 0x5b53c0
jmp 0x5b5961
mov edi, dword [esp + 0x10]
mov edx, dword [ebp + 0x18]
mov ecx, edi
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
call fcn.005b9660
add esp, 0x10
test eax, eax
jne 0x5b53d3
mov ecx, dword [edi + 0x1528]
mov eax, dword [edi + 0x14e8]
mov edx, ecx
or edx, eax
jne 0x5b8668
mov eax, dword [esp + 0xf0]
test al, al
jne 0x5b555e
test esi, esi
jne 0x5b8690
mov ecx, dword [edi + 0xe8]
test ebx, ebx
mov esi, dword [edi + 0xec]
sete byte [esp + 0x14]
cmp al, 1
sete byte [esp + 0x24]
cmp al, 2
sete byte [esp + 0x2c]
sub ecx, dword [edi + 0xf8]
sbb esi, dword [edi + 0xfc]
cmp dword [edi + 0x28], 0
mov dword [esp + 4], ecx
mov dword [esp + 0xc], esi
jne 0x5b55df
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov edx, 0x3fffffff
mov eax, esi
add eax, ebx
adc ecx, 0
cmp edx, eax
mov edx, 0
sbb edx, ecx
mov edx, 0x40000000
mov ecx, 0x3fffffff
cmovb eax, edx
cmp ecx, esi
mov esi, dword [esp + 0xc]
mov ecx, 0
sbb ecx, esi
cmovb eax, edx
cmp ebx, 0x40000000
cmovae eax, edx
mov dword [edi + 0x28], eax
mov eax, dword [edi + 0x14f8]
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.005b9350
cmp byte [edi + 0x1536], 0
movzx ebx, byte [esp + 0x2c]
jne 0x5b860d
and bl, byte [esp + 0x14]
je 0x5b560f
mov byte [edi + 0x1536], 1
mov ecx, edi
call fcn.005b9350
movzx ecx, byte [edi + 0x24]
mov eax, 1
shl eax, cl
cmp eax, dword [esp + 4]
mov eax, 0
sbb eax, esi
jb 0x5b860d
mov ecx, dword [edi + 0xe8]
mov edx, dword [esp + 4]
movzx eax, byte [edi + 0x153a]
sub ecx, dword [edi + 0xf0]
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0xcc]
cmp edx, ecx
cmova ecx, edx
lea esi, [ecx + ecx + 0x20f]
cmp dword [edi + 0x1520], esi
jae 0x5b59a2
test eax, eax
je 0x5b5683
push dword [edi + 0xc8]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
test esi, esi
js 0x5b8d64
mov ecx, 8
mov edx, esi
call fcn.0071ee80
test eax, eax
je 0x5b8e3f
mov dword [edi + 0xc8], eax
mov dword [edi + 0xcc], esi
mov dword [edi + 0x1520], esi
jmp 0x5b59b0
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x1500]
cmp dword [edi + 0x1504], eax
jae 0x5b5726
mov edx, dword [esp + 0xd0]
mov ecx, eax
call fcn.005d0070
mov ecx, dword [edi + 0x150c]
mov ebx, dword [edi + 0x14f4]
mov edx, dword [edi + 0x14f0]
lea eax, [ebx + ecx - 2]
cmp eax, edx
jae 0x5b8c20
mov eax, dword [edi + 0x14ec]
add ecx, ebx
mov byte [eax + ecx - 2], 0
dec ecx
cmp ecx, edx
jae 0x5b8c2c
mov byte [eax + ecx], 0
mov ecx, dword [edi + 0x14fc]
mov edx, dword [edi + 0x1508]
jmp 0x5b572c
mov ebx, dword [edi + 0x14f4]
mov eax, dword [edi + 0x14f8]
mov dword [esp + 0x48], edx
mov dword [esp + 0x40], ebx
and eax, edx
sub ecx, eax
mov dword [esp + 0x18], eax
jbe 0x5b579d
mov edx, dword [edi + 0x150c]
add ebx, eax
add ebx, edx
cmp esi, ecx
mov dword [esp + 0xc], edx
cmovb ecx, esi
mov eax, ebx
add eax, ecx
jb 0x5b8db1
mov edx, dword [edi + 0x14f0]
cmp eax, edx
ja 0x5b8d87
mov edi, dword [esp + 8]
cmp ecx, edi
ja 0x5b8dbf
mov edx, dword [esp + 0x10]
add ebx, dword [edx + 0x14ec]
push ecx
push dword [esp + 0x30]
push ebx
call fcn.007bd9b0
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x40]
jmp 0x5b57a7
mov ecx, dword [edi + 0x150c]
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov dword [esp + 0xc], ecx
lea eax, [edx + esi]
add ecx, edx
cmp eax, ebx
jbe 0x5b5864
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x1500]
sub eax, edx
cmp esi, eax
cmovb eax, esi
mov edx, eax
add edx, ecx
jb 0x5b8dcb
mov edi, dword [edi + 0x14f0]
cmp edx, edi
mov dword [esp + 0x24], edi
ja 0x5b8d93
mov edi, dword [esp + 8]
cmp eax, edi
ja 0x5b8dd5
mov edx, dword [esp + 0x10]
mov edx, dword [edx + 0x14ec]
add ecx, edx
mov dword [esp + 0x20], edx
push eax
push dword [esp + 0x30]
push ecx
call fcn.007bd9b0
add esp, 0xc
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
mov eax, esi
sub ecx, dword [esp + 0x18]
sub eax, ecx
add edx, eax
jb 0x5b8de3
cmp edx, dword [esp + 0x24]
ja 0x5b8df1
cmp esi, ecx
jb 0x5b8e01
cmp esi, edi
ja 0x5b8e0d
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
add edx, ebx
add edi, ecx
push eax
push edi
push edx
call fcn.007bd9b0
mov eax, ebx
add esp, 0xc
jmp 0x5b58ae
mov edx, ecx
add edx, esi
jb 0x5b8e1b
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14f0]
cmp edx, eax
mov dword [esp + 0x24], eax
ja 0x5b8e25
cmp esi, edi
ja 0x5b8da3
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x14ec]
mov dword [esp + 0x20], eax
add ecx, eax
push esi
push dword [esp + 0x30]
push ecx
call fcn.007bd9b0
add esp, 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x48]
lea edi, [eax + ecx - 2]
cmp edi, edx
jae 0x5b8ba1
mov edi, ecx
lea ecx, [eax - 2]
cmp ecx, edx
jae 0x5b8bad
mov dword [esp + 0x2c], ecx
add edi, eax
mov ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x2c]
movzx eax, byte [eax + edi - 2]
mov byte [edx + ebx], al
mov ebx, dword [esp + 0x24]
mov eax, edi
dec eax
cmp eax, ebx
jae 0x5b8bb7
dec ecx
cmp ecx, ebx
jae 0x5b8bc5
mov edi, dword [esp + 0x20]
add esi, dword [esp + 4]
movzx eax, byte [edi + eax]
cmp esi, 0x40000000
mov byte [edi + ecx], al
mov edi, dword [esp + 0x10]
mov dword [edi + 0x1508], esi
jbe 0x5b593e
and esi, 0x3fffffff
or esi, 0x40000000
mov dword [edi + 0x1508], esi
mov eax, dword [ebp + 0x14]
mov ebx, dword [esp]
mov ecx, dword [esp + 4]
add dword [edi + 0xe8], ecx
adc dword [edi + 0xec], 0
cmp esi, dword [edi + 0x14f8]
ja 0x5b53c0
mov eax, dword [edi + 0x150c]
lea ecx, [eax + esi]
lea eax, [eax + esi + 7]
cmp ecx, 0xfffffff8
ja 0x5b8d3d
mov edx, dword [edi + 0x14f0]
cmp eax, edx
ja 0x5b8d49
mov eax, dword [edi + 0x14ec]
mov dword [eax + ecx + 3], 0
mov dword [eax + ecx], 0
mov eax, dword [ebp + 0x14]
jmp 0x5b53c0
test eax, eax
je 0x5b8c03
mov eax, dword [edi + 0xc8]
movzx ecx, byte [edi + 0x1534]
mov byte [eax], cl
mov edx, dword [edi + 0xcc]
cmp edx, 1
jbe 0x5b8c11
mov eax, dword [edi + 0xc8]
movzx ecx, byte [edi + 0x1535]
mov byte [esp + 0x2c], bl
mov byte [eax + 1], cl
movzx eax, byte [edi + 0x1539]
test al, al
jne 0x5b5b00
cmp byte [edi + 0x5f], 0
je 0x5b5b00
mov ebx, dword [esp + 0x38]
mov esi, dword [edi + 0xcc]
mov ecx, ebx
shr ecx, 3
cmp ecx, esi
jae 0x5b8b95
lea eax, [ecx + 7]
cmp eax, esi
jae 0x5b8bd1
mov edi, dword [edi + 0xc8]
mov byte [edi + ecx + 7], 0
mov word [edi + ecx + 5], 0
mov dword [edi + ecx + 1], 0
lea ecx, [ebx + 1]
mov eax, ecx
shr eax, 3
cmp eax, esi
jae 0x5b8b93
lea edx, [eax + 7]
cmp edx, esi
jae 0x5b8bdf
mov edx, 3
and cl, 7
mov word [edi + eax + 6], 0
mov dword [edi + eax + 2], 0
shl edx, cl
lea ecx, [ebx + 3]
mov byte [edi + eax + 1], dh
or byte [edi + eax], dl
shr ecx, 3
cmp ecx, esi
jae 0x5b8b95
lea eax, [ecx + 7]
cmp eax, esi
jae 0x5b8bd1
mov byte [edi + ecx + 7], 0
mov word [edi + ecx + 5], 0
mov dword [edi + ecx + 1], 0
lea ecx, [ebx + 4]
mov eax, ecx
shr eax, 3
cmp eax, esi
jae 0x5b8b93
lea edx, [eax + 7]
cmp edx, esi
jae 0x5b8bdf
mov dl, 1
and cl, 7
mov byte [edi + eax + 7], 0
mov word [edi + eax + 5], 0
mov dword [edi + eax + 1], 0
add ebx, 6
shl dl, cl
or byte [edi + eax], dl
mov edx, dword [esp + 0x10]
mov dword [esp + 0x38], ebx
mov edx, dword [edx + 0x28]
mov ecx, edx
cmp edx, 0x80
jae 0x5b5ce3
and cl, 0x7f
mov dword [esp + 8], 1
xor eax, eax
jmp 0x5b5cfd
mov edx, edi
xor edi, edi
cmp al, 3
je 0x5b5f6b
cmp byte [edx + 0x5c], 0
je 0x5b5f64
cmp dword [esp + 4], 0
je 0x5b5d0a
mov eax, dword [edx + 0xfc]
cmp dword [edx + 0xf8], 2
mov edi, edx
sbb eax, 0
jb 0x5b5b42
cmp byte [edi + 0x1538], 0
je 0x5b8e92
mov eax, dword [esp + 4]
mov edx, dword [edi + 0x14f0]
mov ecx, dword [edi + 0x150c]
mov ebx, 2
cmp eax, 2
mov esi, edx
cmovb ebx, eax
sub esi, ecx
jb 0x5b8ea6
add ecx, dword [edi + 0x14ec]
xor edx, edx
mov dword [esp], ecx
mov ecx, dword [esp + 0xe8]
push 0
push dword [edi + 0xcc]
push dword [edi + 0xc8]
lea eax, [esp + 0x44]
push eax
push dword [esp + 0xf4]
mov dword [esp + 0x20], ebx
push ebx
push dword [esp + 0x7c]
push dword [esp + 0x3c]
push dword [edi + 0xf0]
mov dword [esp + 0x2c], esi
push esi
push dword [esp + 0x28]
call fcn.005c0a40
add esp, 0x2c
mov eax, dword [esp + 0x38]
mov edx, dword [edi + 0xcc]
mov ebx, eax
shr ebx, 3
cmp ebx, edx
jae 0x5b8c70
lea ecx, [ebx + 1]
cmp ecx, edx
jae 0x5b8c7c
mov edi, dword [esp + 0x10]
and al, 7
mov dword [esp + 0x40], ebx
mov ecx, dword [edi + 0xc8]
movzx ecx, word [ecx + ebx]
mov word [edi + 0x1534], cx
mov byte [edi + 0x153a], al
mov ecx, dword [esp + 0x20]
movzx eax, byte [edi + 0x153b]
mov byte [edi + 0x153c], al
mov eax, dword [edi + 0xf0]
and ecx, eax
cmp ecx, dword [esp + 8]
jae 0x5b8c86
mov edx, dword [esp]
mov esi, dword [edi + 0xf4]
cmp dword [esp + 4], 1
mov ebx, dword [esp + 0xc]
movzx ecx, byte [edx + ecx]
mov byte [edi + 0x153b], cl
jbe 0x5b5c61
mov byte [edi + 0x153c], cl
lea ecx, [eax + 1]
mov edx, dword [esp + 8]
and ecx, dword [esp + 0x20]
cmp ecx, edx
jae 0x5b8cce
mov edx, dword [esp]
movzx ecx, byte [edx + ecx]
mov byte [edi + 0x153b], cl
add eax, ebx
adc esi, 0
mov dword [edi + 0xf0], eax
mov dword [edi + 0xf4], esi
mov esi, dword [esp + 4]
mov ecx, dword [edi + 0xf8]
mov eax, dword [edi + 0xfc]
sub esi, ebx
add ecx, ebx
mov dword [esp], esi
adc eax, 0
cmp ebx, 2
mov dword [edi + 0xf8], ecx
mov dword [edi + 0xfc], eax
setae dl
cmp byte [edi + 0x1539], 2
sete dh
or dh, dl
or dh, 2
mov byte [edi + 0x1539], dh
mov dword [edi], 0
mov dword [edi + 4], 0
mov edx, dword [edi + 0xe8]
mov ebx, dword [edi + 0xec]
sub edx, ecx
mov dword [esp + 4], edx
mov edx, edi
mov edi, dword [esp + 0x40]
sbb ebx, eax
mov dword [esp + 0xc], ebx
jmp 0x5b5f72
mov eax, edx
or cl, 0x80
shr eax, 7
cmp edx, 0x4000
jae 0x5b5d16
and al, 0x7f
mov dword [esp + 8], 2
xor ebx, ebx
mov dword [esp], 0
xor edx, edx
jmp 0x5b5d74
mov dword [esp], 0
jmp 0x5b5f72
mov ebx, edx
or al, 0x80
mov byte [esp + 0x40], cl
shr ebx, 0xe
cmp edx, 0x200000
jae 0x5b5d3f
and bl, 0x7f
mov dword [esp + 8], 3
mov dword [esp], 0
xor edx, edx
jmp 0x5b5d6f
mov ecx, edx
or bl, 0x80
shr ecx, 0x15
cmp edx, 0x10000000
jae 0x5b5d5e
and cl, 0x7f
mov dword [esp + 8], 4
xor edx, edx
jmp 0x5b5d6c
shr edx, 0x1c
or cl, 0x80
mov dword [esp + 8], 5
mov dword [esp], ecx
movzx ecx, byte [esp + 0x40]
mov byte [esp + 0x68], cl
mov byte [esp + 0x69], al
mov eax, dword [esp]
mov byte [esp + 0x6a], bl
mov ecx, 8
mov byte [esp + 0x6b], al
mov eax, dword [esp + 8]
mov byte [esp + 0x6c], dl
lea edx, [eax + 3]
lea eax, [esp + 0x80]
mov byte [eax - 0xf], 0
mov dword [eax - 0x13], 0
push esi
push edi
lea eax, [esp + 0x40]
push eax
push 0
call fcn.00422fc0
add esp, 0x10
mov ecx, dword [esp + 0x38]
lea ebx, [ecx + 7]
mov eax, ebx
shr eax, 3
cmp eax, esi
jae 0x5b8c36
mov edx, dword [esp + 0x10]
mov byte [edi + eax], 0
cmp byte [edx + 0x5c], 0
setne byte [esp]
cmp byte [edx + 0x5d], 0
sete byte [esp + 0x40]
cmp byte [edx + 0x5e], 0
setne byte [esp + 0x18]
cmp eax, esi
jae 0x5b8b93
lea edx, [eax + 7]
cmp edx, esi
jae 0x5b8bdf
add ecx, 0xf
mov byte [edi + eax + 7], 0
mov word [edi + eax + 5], 0
mov dword [edi + eax + 1], 0
or byte [edi + eax], 0xe1
shr ecx, 3
cmp ecx, esi
jae 0x5b8b95
lea eax, [ecx + 7]
cmp eax, esi
jae 0x5b8bd1
movzx eax, byte [esp]
mov byte [edi + ecx + 7], 0
mov word [edi + ecx + 5], 0
mov dword [edi + ecx + 1], 0
or byte [edi + ecx], 0x97
movzx ecx, byte [esp + 0x18]
and ebx, 0xfffffff8
add ebx, 0x10
mov dword [esp + 0x38], ebx
and al, byte [esp + 0x40]
add cl, cl
or cl, 0x80
movzx edx, cl
mov ecx, 8
test al, al
mov eax, 0x81
cmovne edx, eax
push esi
push edi
lea eax, [esp + 0x40]
push eax
push 0
call fcn.00422fc0
add esp, 0x10
mov edx, dword [esp + 0x38]
mov eax, edx
shr eax, 3
cmp eax, esi
jae 0x5b8b93
lea ecx, [eax + 7]
cmp ecx, esi
jae 0x5b8be1
mov ecx, edx
mov ch, 1
mov ebx, dword [esp + 8]
mov byte [edi + eax + 7], 0
mov word [edi + eax + 5], 0
mov dword [edi + eax + 1], 0
add edx, 8
mov dword [esp], edi
and cl, 7
shl ch, cl
or byte [edi + eax], ch
mov edi, esi
xor esi, esi
mov dword [esp + 0x38], edx
nop dword [eax]
movzx edx, byte [esp + esi + 0x68]
mov ecx, 8
push edi
push dword [esp + 4]
lea eax, [esp + 0x40]
push eax
push 0
call fcn.00422fc0
add esp, 0x10
inc esi
cmp ebx, esi
jne 0x5b5ee0
mov eax, dword [esp + 0x10]
mov esi, eax
mov edx, dword [eax + 0xcc]
mov eax, dword [esp + 0x38]
mov edi, eax
shr edi, 3
cmp edi, edx
jae 0x5b8c44
lea ecx, [edi + 1]
cmp ecx, edx
jae 0x5b8c50
mov ecx, dword [esi + 0xc8]
mov edx, esi
and al, 7
movzx ecx, word [ecx + edi]
mov word [esi + 0x1534], cx
mov byte [esi + 0x153a], al
mov dword [esi], 0
mov dword [esi + 4], 0
mov byte [esi + 0x1539], 1
cmp byte [edx + 0x5c], 0
jne 0x5b5b16
mov byte [edx + 0x1539], 3
mov eax, dword [esp + 4]
mov dword [esp], eax
mov eax, dword [edx + 0xfc]
mov ebx, dword [edx + 0xf8]
mov esi, edx
mov edx, 2
mov ecx, eax
shld eax, ebx, 2
shr ecx, 0x1e
cmp edx, eax
mov edx, 0
sbb edx, ecx
jae 0x5b5fb1
mov eax, ebx
add ebx, ebx
sar ebx, 1
and eax, 0x3fffffff
and ebx, 0xc0000000
lea ebx, [ebx + eax - 0x80000000]
mov dword [esp + 8], ebx
movzx ebx, byte [esp + 0x24]
mov eax, dword [esi + 0x1c]
mov edx, dword [esp]
mov bh, byte [esp + 0x2c]
and bl, byte [esp + 0x14]
cmp eax, 1
jne 0x5b6094
cmp dword [esi + 0xdc], 0
mov eax, 1
mov ecx, esi
jne 0x5b609d
mov dword [esp], edx
mov ecx, 8
mov edx, 0x80000
mov byte [esp + 0x24], bl
call fcn.0071ee80
test eax, eax
je 0x5b8eb0
cmp dword [esi + 0xdc], 0
mov ebx, esi
je 0x5b602a
push dword [ebx + 0xd8]
push 0
push dword [0x94bf18]
mov dword [esp + 0x20], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x14]
mov ecx, 8
mov edx, 0x20000
mov dword [ebx + 0xd8], eax
mov dword [ebx + 0xdc], 0x20000
call fcn.0071ee80
test eax, eax
je 0x5b8ef5
cmp dword [ebx + 0xe4], 0
je 0x5b6076
push dword [ebx + 0xe0]
push 0
push dword [0x94bf18]
mov dword [esp + 0x20], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xe0], eax
mov dword [ebx + 0xe4], 0x20000
mov edx, dword [esp]
mov eax, dword [ebx + 0x1c]
mov bh, byte [esp + 0x2c]
mov bl, byte [esp + 0x24]
cmp eax, 1
ja 0x5b6173
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x68], 0
or dword [esp + 4], ecx
setne cl
or cl, bh
je 0x5b6326
mov dword [esp], edx
mov edx, dword [esi + 0x14f0]
mov edi, esi
mov esi, dword [esi + 0x150c]
mov byte [esp + 0x24], bl
mov ebx, edx
sub ebx, esi
jb 0x5b8e76
add esi, dword [edi + 0x14ec]
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x10c]
lea edi, [esp + 0x68]
push edi
push dword [esp + 4]
push eax
call fcn.005b9940
add esp, 0xc
mov ecx, dword [esp + 8]
mov dword [esp + 4], eax
mov eax, edx
mov edx, dword [esp + 0x10]
and ecx, dword [esp + 0x20]
cmp dword [edx + 0x1c], 0
je 0x5b6253
mov edx, ebx
sub edx, ecx
jb 0x5b8f04
add esi, ecx
movzx ebx, byte [esp + 0x2c]
mov ecx, esi
mov esi, dword [esp + 0x10]
push dword [esi + 0xcc]
push dword [esi + 0xc8]
lea edi, [esp + 0x40]
push edi
push dword [esp + 0x74]
push eax
mov edi, esi
push dword [esp + 0x18]
push dword [esi + 0xe4]
push dword [esi + 0xe0]
push dword [esi + 0xdc]
push dword [esi + 0xd8]
push ebx
push dword [esp + 0x2c]
call fcn.005bb940
jmp 0x5b62b6
mov eax, esi
mov esi, dword [esi + 0x1514]
mov dword [esp + 0x40], edi
mov edi, edx
mov ecx, edx
mov dword [esp], edx
mov byte [esp + 0x24], bl
shr edi, 1
mov dword [esp + 0x14], esi
lea esi, [esi + edi + 1]
cmp esi, dword [eax + 0x1510]
jbe 0x5b63e0
mov ecx, dword [esp]
shr ecx, 2
add esi, ecx
mov dword [esp + 0xc], ecx
add esi, 0x10
mov dword [eax + 0x1510], esi
je 0x5b633b
cmp esi, 0x7ffffff
ja 0x5b8d64
mov ebx, esi
shl ebx, 4
js 0x5b8d64
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, ebx
call fcn.0071ee80
test eax, eax
je 0x5b8f36
cmp esi, 2
mov dword [esp + 4], eax
jb 0x5b621d
mov ebx, dword [esp + 0xc]
add ebx, edi
add ebx, dword [esp + 0x14]
shl ebx, 4
lea eax, [ebx + 0x100]
push eax
push 0
mov edi, dword [esp + 0xc]
push edi
call fcn.007bdf30
add esp, 0xc
lea eax, [edi + ebx + 0x100]
mov bh, byte [esp + 0x2c]
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0xc4]
test edx, edx
jne 0x5b6351
jmp 0x5b63ce
mov edx, ebx
sub edx, ecx
jb 0x5b8f2a
add esi, ecx
movzx ecx, byte [esp + 0x2c]
mov dword [esp + 8], ecx
mov ecx, esi
mov esi, dword [esp + 0x10]
push dword [esi + 0xcc]
push dword [esi + 0xc8]
lea ebx, [esp + 0x40]
push ebx
push dword [esp + 0x104]
push dword [esp + 0x10c]
push dword [esp + 0x114]
push dword [esp + 0x11c]
push dword [esp + 0x84]
push eax
mov edi, esi
push dword [esp + 0x28]
push dword [esp + 0x30]
push dword [esp + 0x2c]
call fcn.005b9a20
add esp, 0x30
mov eax, dword [esp + 0x38]
mov edx, dword [edi + 0xcc]
movzx ebx, byte [esp + 0x24]
mov esi, edi
mov edi, eax
shr edi, 3
cmp edi, edx
jae 0x5b8c5a
mov bh, byte [esp + 0x2c]
lea ecx, [edi + 1]
cmp ecx, edx
jae 0x5b8c66
mov ecx, dword [esi + 0xc8]
and al, 7
mov edx, esi
movzx ecx, word [ecx + edi]
mov word [esi + 0x1534], cx
mov byte [esi + 0x153a], al
mov eax, dword [esi + 0xe8]
mov ecx, dword [esi + 0xec]
mov dword [esi + 0xfc], ecx
mov dword [esi + 0xf8], eax
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 0x1528], edi
or bl, bh
mov edi, esi
je 0x5b53d3
jmp 0x5b814b
mov dword [esp + 4], 4
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0xc4]
test edx, edx
je 0x5b63ce
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
cmp ecx, esi
ja 0x5b8f42
cmp ecx, edx
ja 0x5b8f4e
mov eax, dword [esp + 0x10]
shl ecx, 4
mov edi, dword [eax + 0xc0]
push ecx
push edi
push dword [esp + 0xc]
call fcn.007bd9b0
add esp, 0xc
mov eax, dword [esp + 0x10]
mov dword [eax + 0xc0], 4
mov eax, dword [esp + 0x10]
mov dword [eax + 0xc4], 0
push edi
mov edi, dword [esp + 0x14]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [edi + 0xc4], 0
je 0x5b63ce
push dword [edi + 0xc0]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 4]
mov dword [edi + 0xc0], eax
mov dword [edi + 0xc4], esi
mov eax, edi
mov edx, dword [eax + 0x14f0]
mov ecx, dword [eax + 0x150c]
mov esi, edx
sub esi, ecx
mov dword [esp + 4], esi
jb 0x5b8e56
mov edi, eax
mov eax, dword [esp + 0xd0]
mov esi, dword [esp + 0x1c]
cmp dword [esp + 8], 0
mov edx, dword [eax]
sete bl
lea eax, [edx + ecx]
mov dword [esp + 0x14], eax
mov eax, dword [esi]
test eax, eax
je 0x5b64d6
dec eax
and bl, bh
mov eax, dword [eax*4 + 0x5b9058]
add eax, dword [esp + 0x5c]
jmp eax
mov eax, dword [edi + 0x1c]
movzx edx, byte [edi + 0x58]
cmp eax, 0xa
jl 0x5b6621
test dl, dl
jne 0x5b6621
mov eax, dword [esp + 0x30]
mov dword [eax], 0xa
mov ebx, dword [edi + 0x20]
mov edi, 1
mov edx, 0x80000
and ebx, 0x1f
mov ecx, ebx
shl edi, cl
mov ecx, 8
call fcn.0071ee80
test eax, eax
je 0x5b8eb0
mov esi, eax
mov eax, 1
sub eax, edi
movd xmm0, eax
mov dword [esp + 0x18], eax
mov eax, 0xfff80000
pshufd xmm0, xmm0, 0
nop dword [eax]
movdqu xmmword [esi + eax + 0x80000], xmm0
movdqu xmmword [esi + eax + 0x80010], xmm0
add eax, 0x20
jne 0x5b6540
mov eax, 2
mov ecx, ebx
shl eax, cl
cmp ebx, 0x1f
mov dword [esp + 0xc], eax
mov eax, 4
je 0x5b65a4
mov eax, dword [esp + 0xc]
mov edx, 8
mov ecx, ebx
shl edx, cl
cmp eax, 0x1fffffff
ja 0x5b8d64
test edx, edx
js 0x5b8d64
mov ecx, 8
mov dword [esp + 0x48], edx
call fcn.0071ee80
test eax, eax
je 0x5b8fb9
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x80]
dec edi
movq xmm0, qword [ecx + 0x10]
movsd xmm2, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov ecx, dword [esp + 0x18]
movq qword [edx + 0x10], xmm0
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm2
mov edx, dword [esp + 0xc]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], 0x20000
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], edi
mov dword [esp + 0x98], 1
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x68], 0xa
jmp 0x5b6d20
cmp eax, 9
je 0x5b662f
cmp eax, 0xa
jne 0x5b6c73
movaps xmm0, xmmword [0x7d5080]
mov dword [edi + 0x40], 0x10
movups xmmword [edi + 0x30], xmm0
mov edi, dword [edi + 0x44]
mov ecx, 8
mov edx, 0x10000
call fcn.0071ee80
test eax, eax
je 0x5b8f87
mov ecx, 8
mov edx, 0x2000000
mov esi, eax
call fcn.0071ee80
test eax, eax
je 0x5b8f96
mov edx, dword [esp + 0x30]
lea ebx, [esp + 0x80]
test edi, edi
mov ecx, dword [edx + 0x10]
movq xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
mov dword [ebx + 0xc], ecx
mov ecx, 0x21c
movsd qword [ebx + 4], xmm1
movq qword [ebx - 4], xmm0
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], 0x8000
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], 0x800000
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], 1
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
cmove edi, ecx
mov dword [esp + 0xa0], edi
mov dword [esp + 0x68], 9
jmp 0x5b6d20
mov ecx, dword [edi + 0x28]
cmp eax, 4
jne 0x5b7086
cmp ecx, 0x100000
jb 0x5b7086
mov eax, dword [esp + 0x30]
mov dword [eax], 0x36
mov esi, dword [edi + 0x44]
mov ecx, 8
mov edx, 0x400030
call fcn.0071ee80
test eax, eax
je 0x5b8fe7
mov edx, dword [esp + 0x30]
lea edi, [esp + 0x80]
test esi, esi
mov ecx, dword [edx + 0x10]
movq xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
mov dword [edi + 4], ecx
mov ecx, 0x21c
movsd qword [edi - 4], xmm1
movq qword [edi - 0xc], xmm0
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], 0x10000c
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], 1
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
cmove esi, ecx
mov dword [esp + 0x98], esi
mov dword [esp + 0x68], 4
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.005b5090
mov edi, esi
mov ecx, 0x16
lea esi, [esp + 0x68]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x5c]
mov eax, dword [esi]
mov eax, dword [eax*4 + 0x5b9180]
add eax, edx
jmp eax
cmp eax, 5
jge 0x5b7093
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
jmp 0x5b70c1
mov esi, dword [edi + 0x20]
cmp esi, 0x11
jge 0x5b815a
cmp eax, 9
mov ecx, 0x2a
mov esi, dword [esp + 0x1c]
sbb ecx, 0
cmp eax, 7
mov eax, 0x28
cmovb ecx, eax
mov eax, dword [esp + 0x30]
mov dword [eax], ecx
mov eax, ecx
add eax, 0xfffffffe
cmp eax, 0x34
ja 0x5b81bb
mov eax, dword [eax*4 + 0x5b90ac]
add eax, dword [esp + 0x5c]
jmp eax
movzx eax, bh
inc eax
mov dword [edi + 0x14e8], eax
jmp 0x5b53d3
test dl, dl
je 0x5b8168
cmp ecx, 0x100001
jae 0x5b8170
jmp 0x5b81cd
cmp ecx, 0x400001
jb 0x5b81cd
cmp esi, 0x12
jbe 0x5b81cd
cmp eax, 0xa
mov ecx, 0xa
mov esi, 0x10
mov edx, 0xa
mov dword [edi + 0x30], 6
cmovl ecx, eax
dec ecx
cmp eax, 9
cmovb esi, edx
cmp eax, 7
mov edx, 4
mov dword [edi + 0x38], ecx
mov dword [edi + 0x34], 0xf
mov dword [edi + 0x3c], 5
cmovb esi, edx
mov dword [edi + 0x40], esi
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x64]
lea ecx, [esp + 0x68]
call fcn.005c0e90
jmp 0x5b6d24
cmp eax, 0xa
mov edx, 0xa
mov ebx, 0x10
mov esi, 0xa
mov dword [edi + 0x30], 5
cmovl edx, eax
dec edx
cmp ecx, 0x100001
setb cl
cmp eax, 9
mov dword [edi + 0x38], edx
cmovb ebx, esi
cmp eax, 7
mov esi, 4
setb al
cmovb ebx, esi
and al, cl
movzx eax, al
xor eax, 0xf
mov dword [edi + 0x34], eax
mov dword [edi + 0x40], ebx
mov ebx, dword [edi + 0x34]
mov edi, dword [edi + 0x38]
mov esi, 1
mov dword [esp + 0x48], ebx
and ebx, 0x3f
mov eax, edi
mov dword [esp + 0xc], edi
mov ecx, ebx
and eax, 0x3f
shl esi, cl
test bl, 0x20
mov ecx, 0
mov dword [esp + 0x60], eax
cmovne esi, ecx
mov ecx, eax
mov edx, esi
shl edx, cl
test al, 0x20
mov ecx, 0
cmovne edx, ecx
test edx, edx
mov dword [esp + 0x18], edx
je 0x5b83b6
cmp edx, 0x1fffffff
ja 0x5b8d64
lea edi, [edx*4]
test edi, edi
js 0x5b8d64
mov ecx, 8
mov edx, edi
call fcn.0071ee80
test eax, eax
jne 0x5b83bb
jmp 0x5b8fdb
mov eax, 4
mov dword [esp + 0x3c], eax
mov eax, 2
cmp ebx, 0x1f
ja 0x5b83f3
cmp esi, 0x3fffffff
ja 0x5b8d64
mov edi, esi
add edi, esi
js 0x5b8d64
mov ecx, 8
mov edx, edi
call fcn.0071ee80
test eax, eax
je 0x5b901e
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x58], esi
cmp edi, 6
je 0x5b84a9
mov esi, dword [esp + 0x48]
cmp edi, 4
jne 0x5b8541
mov ecx, esi
and ecx, 0x1f
cmp ecx, 0xe
jne 0x5b8541
mov ecx, dword [esp + 0x30]
lea esi, [esp + 0x80]
mov edx, dword [edx + 0x44]
movq xmm0, qword [ecx + 0x10]
movsd xmm2, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov ecx, dword [esp + 0x58]
test edx, edx
movq qword [esi + 0xc], xmm0
movsd qword [esi + 4], xmm1
movsd qword [esi - 4], xmm2
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ecx
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], ecx
mov ecx, 0x21c
mov dword [esp + 0x94], 1
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
cmove edx, ecx
mov dword [esp + 0xa0], edx
mov dword [esp + 0x68], 7
jmp 0x5b6d20
mov esi, dword [esp + 0x48]
mov ecx, esi
and ecx, 0x1f
cmp ecx, 0xf
jne 0x5b8541
mov ecx, dword [esp + 0x30]
lea esi, [esp + 0x80]
mov edx, dword [edx + 0x44]
movq xmm0, qword [ecx + 0x10]
movsd xmm2, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov ecx, dword [esp + 0x58]
test edx, edx
movq qword [esi + 0xc], xmm0
movsd qword [esi + 4], xmm1
movsd qword [esi - 4], xmm2
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ecx
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], ecx
mov ecx, 0x21c
mov dword [esp + 0x94], 1
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
cmove edx, ecx
mov dword [esp + 0xa0], edx
mov dword [esp + 0x68], 6
jmp 0x5b6d20
mov edx, dword [edx + 0x44]
mov ecx, 0x21c
mov edi, 0x20
mov ebx, 0xffffffff
test edx, edx
cmove edx, ecx
mov ecx, dword [esp + 0x60]
sub edi, esi
lea esi, [esp + 0x80]
shl ebx, cl
test cl, 0x20
mov ecx, dword [esp + 0x30]
movq xmm0, qword [ecx + 0x10]
movsd xmm2, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov ecx, dword [esp + 0x3c]
movq qword [esi + 0xc], xmm0
movsd qword [esi + 4], xmm1
movsd qword [esi - 4], xmm2
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x58]
mov esi, 0
cmovne ebx, esi
not ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x94], 1
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], edx
mov dword [esp + 0x68], 5
jmp 0x5b6d20
xor edx, edx
jmp 0x5b86e1
mov dword [edi + 0x1528], 0
jmp 0x5b5179
test edx, edx
je 0x5b8697
mov eax, dword [edi + 0xe0]
mov ecx, dword [edi + 0xe4]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], ecx
mov eax, dword [edi + 0xd8]
mov dword [edi + 0xd8], 4
mov dword [edi + 0xdc], 0
mov dword [edi + 0xe0], 1
mov dword [edi + 0xe4], 0
mov dword [esp + 0x54], eax
jmp 0x5b86e1
test ecx, ecx
mov bl, 1
jne 0x5b517b
cmp eax, 1
jne 0x5b517b
mov dword [edi + 0x14e8], 0
mov dword [edi], 2
jmp 0x5b517b
mov bl, 1
jmp 0x5b517b
test esi, esi
mov edx, 0
je 0x5b86e1
lea edi, [esi*4]
mov ecx, 8
mov edx, edi
call fcn.0071ee80
test eax, eax
mov dword [esp + 0x54], eax
je 0x5b8fdb
mov ecx, 8
mov edx, esi
call fcn.0071ee80
test eax, eax
mov dword [esp + 0x4c], eax
je 0x5b8e3f
mov edi, dword [esp + 0x10]
mov edx, esi
mov dword [esp + 0x3c], esi
lea eax, [edi + 0x150]
lea ecx, [edi + 0x12d0]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x48], eax
lea eax, [edi + 0xd0]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0xd0], eax
lea eax, [edi + 0x1150]
mov dword [esp + 0x58], eax
lea eax, [edi + 0x11d0]
mov dword [esp + 0x64], eax
lea eax, [edi + 0x1524]
mov dword [esp + 0xcc], eax
mov eax, edi
jmp 0x5b8738
mov dword [edi + 0x14e8], eax
mov eax, edi
mov ebx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x20]
mov edi, eax
mov ecx, edi
mov edx, ebx
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push esi
push dword [ebp + 0x1c]
call fcn.005b9660
add esp, 0x10
test eax, eax
jne 0x5b8740
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp]
test dl, dl
sete al
test ebx, ebx
sete cl
cmp dword [edi + 0x1528], 0
jne 0x5b8a43
cmp dword [edi + 0x14e8], 0
jne 0x5b8a43
and al, cl
jne 0x5b8a43
cmp dl, 1
movzx eax, byte [edi + 0x153a]
mov dword [esp + 0x68], 0
sete cl
cmp dl, 2
mov edx, dword [esp + 0x20]
sete ch
mov dword [esp + 0x38], eax
cmp edx, ebx
cmovb ebx, edx
setae dl
and cl, dl
cmp cl, 1
mov byte [esp + 0x2c], cl
jne 0x5b87d3
mov eax, 1
test ebx, ebx
je 0x5b8730
mov eax, dword [ebp + 0x18]
lea esi, [ebx + ebx + 0x1f7]
mov byte [esp + 0x24], dl
mov dword [esp + 0x14], esi
mov eax, dword [eax]
cmp esi, eax
mov dword [esp + 0xc], eax
jbe 0x5b8850
cmp dword [edi + 0x1520], esi
jae 0x5b886e
cmp dword [edi + 0xcc], 0
mov byte [esp + 4], ch
je 0x5b8818
push dword [edi + 0xc8]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
test esi, esi
js 0x5b8d64
mov ecx, 8
mov edx, esi
call fcn.0071ee80
mov edx, esi
test eax, eax
je 0x5b8e35
mov ch, byte [esp + 4]
mov dword [edi + 0xc8], eax
mov dword [edi + 0xcc], edx
mov esi, eax
mov dword [edi + 0x1520], edx
jmp 0x5b8882
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp + 0x20]
mov esi, dword [eax]
mov eax, dword [ebp + 0x1c]
sub edx, esi
jb 0x5b8d69
add esi, eax
test edx, edx
jne 0x5b8882
jmp 0x5b8b5b
mov esi, dword [edi + 0xc8]
mov edx, dword [edi + 0xcc]
test edx, edx
je 0x5b8b5b
movzx eax, byte [edi + 0x1534]
cmp edx, 1
mov byte [esi], al
je 0x5b8b69
and ch, byte [esp + 0x24]
movzx eax, byte [edi + 0x1535]
mov dword [esp + 8], edx
mov edx, dword [esp + 0xd0]
mov byte [esp + 4], ch
mov ecx, dword [esp + 0x48]
mov byte [esi + 1], al
lea eax, [esp + 0x68]
push eax
push ebx
push dword [edi + 0x1c]
call fcn.005b9940
add esp, 0xc
mov dword [esp], eax
mov eax, edx
movzx edx, byte [esp + 4]
mov ecx, dword [ebp + 0x14]
cmp dword [edi + 0x1c], 0
mov dword [esp + 0x40], esi
mov dword [esp + 0x24], edx
mov edi, dword [ecx]
mov edx, dword [ebp + 0x10]
je 0x5b8928
sub edx, edi
jb 0x5b8d55
mov ecx, dword [ebp + 0xc]
add ecx, edi
push dword [esp + 8]
push esi
lea esi, [esp + 0x40]
push esi
push dword [esp + 0x74]
push eax
push dword [esp + 0x14]
push dword [esp + 0x54]
push dword [esp + 0x68]
push dword [esp + 0x3c]
push dword [esp + 0x78]
push dword [esp + 0x4c]
push ebx
call fcn.005bb940
add esp, 0x30
mov esi, dword [ebp + 0x14]
jmp 0x5b8970
sub edx, edi
jb 0x5b8d78
add edi, dword [ebp + 0xc]
mov ecx, edi
push dword [esp + 8]
push esi
lea esi, [esp + 0x40]
push esi
push dword [esp + 0x68]
push dword [esp + 0xdc]
push dword [esp + 0x78]
push dword [esp + 0x70]
push dword [esp + 0x84]
push eax
push dword [esp + 0x24]
push dword [esp + 0x4c]
push ebx
call fcn.005b9a20
add esp, 0x30
mov esi, dword [ebp + 0x14]
mov edi, dword [esi]
mov edx, dword [ebp + 8]
add edi, ebx
mov eax, dword [esp + 0xc]
mov dword [esi], edi
mov ecx, dword [edx]
sub ecx, ebx
mov ebx, ecx
mov ecx, dword [esp + 0x38]
mov dword [edx], ebx
mov dword [esp], ebx
mov dword [esp + 0x18], ecx
shr ecx, 3
cmp dword [esp + 0x14], eax
jbe 0x5b89c0
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x40]
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 0x1528], ecx
jmp 0x5b89fc
mov eax, dword [ebp + 0x24]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x40]
add dword [eax], ecx
mov eax, dword [ebp + 0x18]
mov edi, dword [ebx + 0x14d4]
sub dword [eax], ecx
mov eax, dword [ebx + 0x14d0]
add eax, ecx
adc edi, 0
mov dword [ebx + 0x14d0], eax
mov dword [ebx + 0x14d4], edi
mov edi, ebx
mov ebx, dword [ebp + 0x28]
cmp dword [ebx], 0
je 0x5b89fc
mov dword [ebx + 4], eax
mov edx, dword [esp + 8]
cmp ecx, edx
jae 0x5b8b7d
lea eax, [ecx + 1]
cmp eax, edx
jae 0x5b8b87
movzx eax, word [esi + ecx]
movzx ecx, byte [esp + 4]
mov word [edi + 0x1534], ax
mov eax, dword [esp + 0x18]
and al, 7
or byte [esp + 0x2c], cl
mov byte [edi + 0x153a], al
je 0x5b8736
mov eax, dword [esp + 0x24]
inc eax
jmp 0x5b8730
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x5b8a72
cmp edx, 0x20000
jne 0x5b8a5c
cmp dword [edi + 0xdc], 0
je 0x5b8a9b
push dword [esp + 0x54]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0x3c], 0
je 0x5b8a95
push dword [esp + 0x4c]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esp + 0x1c]
xor eax, eax
xor ecx, ecx
jmp 0x5b8af6
mov al, 1
xor ecx, ecx
jmp 0x5b8af6
mov eax, dword [esp + 0x54]
mov dword [edi + 0xd8], eax
mov dword [edi + 0xdc], 0x20000
cmp dword [edi + 0xe4], 0
je 0x5b8acc
push dword [edi + 0xe0]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x4c]
xor edx, edx
mov cl, 1
mov dword [esp + 0x54], 4
mov dword [esp + 0x4c], 1
mov dword [edi + 0xe0], eax
mov eax, dword [esp + 0x3c]
mov dword [edi + 0xe4], eax
mov al, 1
cmp dword [edi + 0x1528], 0
jne 0x5b8b18
cmp dword [edi + 0x14e8], 1
jne 0x5b8b18
mov dword [edi + 0x14e8], 0
mov dword [edi], 2
mov bl, 1
test cl, cl
je 0x5b517b
test al, al
jne 0x5b8b3c
push dword [esp + 0x4c]
push 0
push dword [0x94bf18]
mov esi, edx
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, esi
test edx, edx
je 0x5b517b
push dword [esp + 0x54]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x5b517b
xor ecx, ecx
xor edx, edx
push 0x925250
call fcn.007c1be0
mov ecx, 1
mov edx, 1
push 0x925260
call fcn.007c1be0
push 0x925280
call fcn.007c1be0
mov ecx, eax
push 0x925290
call fcn.007c1be0
mov ecx, eax
mov edx, esi
push 0x7d966c
call fcn.007c1be0
mov ecx, edi
push 0x924f18
call fcn.007c1be0
push 0x924f28
call fcn.007c1be0
mov ecx, eax
mov edx, ebx
push 0x924f38
call fcn.007c1be0
mov edx, ebx
push 0x924f48
call fcn.007c1be0
mov ecx, eax
mov edx, esi
push 0x7d967c
call fcn.007c1be0
mov ecx, edx
mov edx, esi
push 0x7d967c
call fcn.007c1be0
push 0x925230
call fcn.007c1be0
mov ecx, esi
push 0x925240
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x92500c
call fcn.007c1be0
mov ecx, 1
push 0x92501c
call fcn.007c1be0
mov ecx, eax
push 0x924e98
call fcn.007c1be0
push 0x924ea8
call fcn.007c1be0
mov ecx, eax
mov edx, esi
push 0x7d9980
call fcn.007c1be0
mov ecx, edi
push 0x92502c
call fcn.007c1be0
push 0x92503c
call fcn.007c1be0
mov ecx, edi
push 0x9250f4
call fcn.007c1be0
push 0x925104
call fcn.007c1be0
mov ecx, ebx
push 0x9250a4
call fcn.007c1be0
push 0x9250b4
call fcn.007c1be0
mov edx, dword [esp + 8]
push 0x9250c4
call fcn.007c1be0
push 0x925170
call fcn.007c1be0
mov ecx, eax
push 0x925180
call fcn.007c1be0
mov ecx, esi
push 0x925220
call fcn.007c1be0
mov ecx, eax
push 0x925160
call fcn.007c1be0
mov ecx, eax
push 0x8a8da8
call fcn.007c1be0
push 0x9250d4
call fcn.007c1be0
mov ecx, edi
push 0x925190
call fcn.007c1be0
mov ecx, esi
push 0x8a8da8
call fcn.007c1be0
mov edx, dword [esp + 0xc]
mov ecx, eax
push 0x8a8da8
call fcn.007c1be0
mov ecx, esi
push 0x9251a0
call fcn.007c1be0
mov edx, dword [ebp + 0x10]
push 0x925210
call fcn.007c1b80
mov edx, eax
push 0x924e78
call fcn.007c1e60
mov ecx, eax
push 0x924e78
call fcn.007c1c40
mov ecx, esi
push 0x924e88
call fcn.007c1c40
mov edx, eax
push 0x9252c0
call fcn.007c1e60
mov ecx, eax
push 0x9252c0
call fcn.007c1c40
mov edx, dword [ebp + 0x10]
mov ecx, edi
push 0x9252a0
call fcn.007c1b80
call fcn.00418cb0
mov edx, dword [ebp + 0x20]
mov ecx, esi
push 0x9252b0
call fcn.007c1b80
mov edx, dword [ebp + 0x10]
mov ecx, edi
push 0x925270
call fcn.007c1b80
mov ecx, eax
push 0x924f58
call fcn.007c1c40
mov ecx, edx
mov edx, dword [esp + 0x24]
push 0x924eb8
call fcn.007c1c40
mov ecx, esi
mov edx, edi
push 0x924f08
call fcn.007c1c40
mov ecx, ebx
mov edx, eax
push 0x924f58
call fcn.007c1e60
mov edx, edi
push 0x924f68
call fcn.007c1c40
push 0x924eb8
call fcn.007c1e60
mov ecx, eax
mov edx, edi
push 0x924ec8
call fcn.007c1c40
mov ecx, dword [esp + 0xc]
push 0x924ed8
call fcn.007c1e60
mov ecx, edx
mov edx, dword [esp + 0x24]
push 0x924ed8
call fcn.007c1c40
mov edx, esi
push 0x924ee8
call fcn.007c1e60
mov ecx, esi
mov edx, edi
push 0x924ee8
call fcn.007c1c40
push 0x924ef8
call fcn.007c1e60
mov ecx, edx
mov edx, dword [esp + 0x24]
push 0x924ef8
call fcn.007c1c40
mov ecx, 1
call fcn.007c1490
mov ecx, 1
mov edx, esi
call fcn.007c1490
lea ecx, [esp + 0x68]
mov edx, 0x8f1910
jmp 0x5b8ec8
push 0x9251f0
call fcn.007c1b80
push 0x9251e0
call fcn.007c1b80
mov ecx, esi
push 0x9251d0
call fcn.007c1b80
mov ecx, esi
push 0x925124
call fcn.007c1b80
mov edx, dword [esp + 4]
mov ecx, edi
push 0x8a74e4
call fcn.007c1b80
mov ecx, str.assertion_failed:_self.last_processed_pos____2__self.custom_dictionary
mov edx, 0x48
push 0x925094
call fcn.007c1ca0
push 0x925200
call fcn.007c1b80
mov ecx, 4
mov edx, 0x80000
call fcn.007c1490
lea ecx, [esp + 0x68]
mov edx, 0x8f1900
mov dword [esp + 0x68], str.mid___len
mov dword [esp + 0x6c], 1
mov dword [esp + 0x78], 0
mov dword [esp + 0x70], 0x93d1f8
mov dword [esp + 0x74], 0
call fcn.007c1b50
mov ecx, 1
mov edx, 0x20000
call fcn.007c1490
mov edx, ebx
push 0x925114
call fcn.007c1b80
mov ecx, edx
mov edx, ebx
push 0x9251c0
call fcn.007c1b80
mov edx, esi
push 0x9251b0
call fcn.007c1b80
mov edx, ebx
push 0x9250e4
call fcn.007c1b80
mov ecx, 4
mov edx, ebx
call fcn.007c1490
mov edx, esi
push 0x925134
call fcn.007c1c40
push 0x925144
call fcn.007c1c40
inc ecx
mov edx, dword [esp + 0xc]
push 0x8a74d4
call fcn.007c1c40
mov ecx, eax
mov edx, dword [esp + 4]
push 0x8a8db8
call fcn.007c1b80
mov ecx, esi
mov edx, dword [esp + 4]
push 0x8a8db8
call fcn.007c1b80
mov ecx, 2
mov edx, 0x10000
call fcn.007c1490
mov ecx, 4
mov edx, 0x2000000
call fcn.007c1490
mov ecx, str.UNINTIALIZED
mov edx, 0xc
push 0x8a779c
call fcn.007ccbe0
mov edx, dword [esp + 0x48]
mov ecx, 4
call fcn.007c1490
mov ecx, str.UNINTIALIZED
mov edx, 0xc
push 0x8a778c
call fcn.007ccbe0
mov ecx, 4
mov edx, edi
call fcn.007c1490
mov ecx, 4
mov edx, 0x400030
call fcn.007c1490
push 0x8a8d98
call fcn.007c1c40
mov ecx, 0x8000
push 0x8a8d98
call fcn.007c1c40
mov ecx, 0x4000
push 0x8a8d98
call fcn.007c1c40
mov ecx, 2
mov edx, edi
call fcn.007c1490
mov ecx, 4
mov edx, 0x40024
call fcn.007c1490
mov ecx, 4
mov edx, 0x40028
call fcn.007c1490
mov ecx, 4
mov edx, 0x80020
call fcn.007c1490
nop
ljmp 0x15