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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x210
mov esi, dword [edx + 0x38]
call 0x5d2de7
pop eax
mov dword [esp + 0x24], eax
xor esi, 0x2f
or esi, dword [edx + 0x3c]
jne 0x5d2e00
mov dword [ecx + 4], 0
jmp 0x5d567f
mov eax, dword [edx + 0x118]
cmp eax, 2
jne 0x5d564d
mov eax, dword [0x6d3de0]
mov dword [esp + 0x1cc], ecx
mov ecx, 4
xor ebx, ebx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x58], 0
mov eax, dword [edx + 0x8c]
mov esi, eax
mov dword [esp + 0x10], eax
mov esi, edx
mul ecx
mov edx, eax
setno al
jo 0x5d56f7
mov bl, al
lea ecx, [esi + 0x38]
add ebx, ebx
test edx, edx
mov dword [esp + 0x2c], ecx
js 0x5d56f7
mov ecx, dword [esi + 0xc4]
mov eax, esi
mov edi, dword [esi + 0x80]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 0x70]
mov dword [esp + 0x34], edi
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x44], ecx
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x28], ecx
mov ecx, dword [esi + 0xcc]
mov dword [esp + 0xc], ecx
mov cl, byte [esi + 0xcd]
mov byte [esp + 0x18], cl
mov ecx, dword [esi + 0xc8]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esi + 0x7c]
mov esi, dword [esi + 0x84]
mov dword [esp + 0x40], ecx
je 0x5d2f09
mov eax, dword [0x6f1130]
test eax, eax
jne 0x5d2ef3
mov edi, edx
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5d469e
mov edx, edi
mov dword [0x6f1130], eax
mov edi, edx
push edx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov ecx, eax
test ecx, ecx
jne 0x5d2f15
jmp 0x5d469e
mov edi, edx
mov ecx, ebx
test ecx, ecx
je 0x5d469e
mov eax, dword [esp + 0x10]
lea eax, [eax*4]
push eax
push esi
mov dword [esp + 0x38], ecx
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov ecx, 0x10
xor ebx, ebx
mov eax, dword [eax + 0x98]
mov dword [esp + 8], eax
mul ecx
mov ecx, eax
setno al
jo 0x5d56f7
mov bl, al
shr edi, 2
shl ebx, 3
test ecx, ecx
js 0x5d56f7
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], edi
mov edx, dword [eax + 0x90]
je 0x5d2fae
mov eax, dword [0x6f1130]
mov dword [esp + 4], edx
test eax, eax
jne 0x5d2f94
mov esi, ecx
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5d4690
mov ecx, esi
mov dword [0x6f1130], eax
mov esi, ecx
push ecx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edx, dword [esp + 4]
mov edi, eax
test edi, edi
jne 0x5d2fba
jmp 0x5d4690
mov esi, ecx
mov edi, ebx
test edi, edi
je 0x5d4690
mov eax, dword [esp + 8]
shl eax, 4
push eax
push edx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov ecx, 4
xor ebx, ebx
mov eax, dword [eax + 0x6c]
mov edx, eax
mov dword [esp + 4], eax
mul ecx
mov edx, eax
setno al
jo 0x5d56f7
mov ecx, esi
mov bl, al
shr ecx, 4
add ebx, ebx
test edx, edx
js 0x5d56f7
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x4c], ecx
mov eax, dword [eax + 0x64]
mov dword [esp + 0x38], eax
je 0x5d4684
mov eax, dword [0x6f1130]
test eax, eax
jne 0x5d3032
mov esi, edx
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5d4690
mov edx, esi
mov dword [0x6f1130], eax
mov esi, edx
push edx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov ecx, eax
test ecx, ecx
je 0x5d4690
mov eax, dword [esp + 4]
mov dword [esp + 0xa4], edi
lea eax, [eax*4]
push eax
push dword [esp + 0x3c]
mov dword [esp + 0xa4], ecx
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov ecx, 0x38
xor ebx, ebx
mov eax, dword [eax + 0xb0]
mov dword [esp + 0x38], eax
mul ecx
mov edi, eax
setno al
jo 0x5d56f7
mov bl, al
shr esi, 2
shl ebx, 3
test edi, edi
js 0x5d56f7
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x200], esi
mov ecx, dword [eax + 0xa8]
je 0x5d4694
mov eax, dword [0x6f1130]
mov dword [esp + 0xa0], ecx
test eax, eax
jne 0x5d30d9
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5d469e
mov dword [0x6f1130], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov ecx, dword [esp + 0xa0]
mov esi, eax
test esi, esi
je 0x5d469e
push edi
push ecx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0xb8]
mov ebx, dword [ecx + 0xb4]
mov dword [esp + 0xa0], eax
mov eax, dword [ecx + 0xbc]
mov dword [esp + 0x1fc], eax
mov eax, dword [ecx + 0x38]
xor eax, 0x2e
or eax, dword [ecx + 0x3c]
mov eax, dword [ecx + 0xc0]
mov ecx, 0
mov dword [esp + 0x1f8], eax
mov eax, 0x2e
je 0x5d3203
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x188]
call fcn.005d5ac0
mov eax, dword [esp + 0x1c]
movsd xmm2, qword [eax + 0x60]
movups xmm0, xmmword [eax + 0x48]
movsd xmm1, qword [eax + 0x58]
movsd qword [esp + 0x1b0], xmm2
movsd xmm2, qword [eax + 0x68]
movsd qword [esp + 0x1b8], xmm2
movups xmmword [esp + 0x198], xmm0
movsd qword [esp + 0x1a8], xmm1
movsd xmm1, qword [esp + 0x1b0]
movsd xmm0, qword [esp + 0x190]
movsd xmm3, qword [esp + 0x198]
movsd xmm2, qword [esp + 0x1a8]
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x18c]
movsd qword [esp + 0x88], xmm1
movsd xmm1, qword [esp + 0x1a0]
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x70], xmm3
movsd qword [esp + 0x80], xmm2
movsd qword [esp + 0x78], xmm1
movsd xmm1, qword [esp + 0x1b8]
movsd qword [esp + 0x90], xmm1
mov edx, dword [esp + 0x30]
movsd xmm0, qword [esp + 0x68]
movsd xmm1, qword [esp + 0x70]
shr edi, 3
movaps xmm2, xmmword [0x607490]
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0xf8], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0xfc], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x100], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x104], edx
mov edx, dword [esp + 8]
mov dword [esp + 0x108], edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x10c], edx
mov edx, dword [esp + 0x200]
mov dword [esp + 0x110], edx
mov edx, dword [esp + 4]
mov dword [esp + 0x114], edx
movsd qword [esp + 0xb0], xmm0
movsd xmm0, qword [esp + 0x78]
movsd qword [esp + 0xb8], xmm1
movsd qword [esp + 0xc0], xmm0
movsd xmm0, qword [esp + 0x80]
movsd qword [esp + 0xc8], xmm0
movsd xmm0, qword [esp + 0x88]
movsd qword [esp + 0xd0], xmm0
movsd xmm0, qword [esp + 0x90]
movsd qword [esp + 0xd8], xmm0
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xac], ecx
mov ecx, 0x24924925
xorps xmm0, xmm0
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xf0], eax
mov eax, edi
mov dword [esp + 0x118], esi
mul ecx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x11c], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x1fc]
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0xc]
mov word [esp + 0x138], cx
shld eax, ecx, 8
mov word [esp + 0x13b], ax
mov eax, ecx
mov cl, byte [esp + 0x18]
shr eax, 0x10
mov byte [esp + 0x13d], cl
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], edx
mov byte [esp + 0x13a], al
mov dword [esp + 0x144], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x148], 0
movups xmmword [esp + 0x150], xmm2
movups xmmword [esp + 0x160], xmm0
mov byte [esp + 0x178], al
mov al, 0x14
lea ecx, [esp + 0x118]
mov dword [esp + 0x179], 0
mov dword [esp + 0x180], ebx
mov dword [esp + 0x184], edx
add al, 0xf0
mov byte [esp + 0x3c], al
mov al, 0x12
add al, 0xf0
mov byte [esp + 0x44], al
mov al, 0x13
add al, 0xf0
mov byte [esp + 0x48], al
xor eax, eax
test al, al
je 0x5d34a7
mov al, byte [esp + 0x13a]
mov dword [ecx + 0x30], 0
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x34], 0
mov dword [ecx + 0x2c], 0
mov dword [ecx + 0x58], 0
mov dword [ecx + 0x5c], 0
mov dword [ecx + 0x50], 0
mov dword [ecx + 0x54], 0
movups xmmword [esp + 0x150], xmm2
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
mov byte [esp + 0x178], al
mov dword [esp + 0x179], 0
jmp 0x5d34cf
mov dword [esp + 0x174], 0
mov dword [esp + 0x170], 0
mov byte [esp + 0x179], 0
mov word [esp + 0x17b], 0
mov edx, dword [esp + 0x184]
test edx, edx
je 0x5d4749
mov eax, dword [esp + 0x180]
lea esi, [edx - 1]
mov dword [esp + 4], edx
lea edi, [eax + 1]
mov dword [esp + 8], eax
mov dword [esp + 0x180], edi
mov dword [esp + 0x184], esi
mov ecx, edi
mov dword [esp + 0xc], edi
mov cl, byte [eax]
test cl, cl
je 0x5d3758
mov al, byte [esp + 0x13d]
mov ah, cl
sub ah, al
jae 0x5d42f3
dec cl
movzx edx, cl
cmp cl, 0xb
ja 0x5d38e7
mov ecx, dword [edx*4 + 0x5d578c]
add ecx, dword [esp + 0x24]
jmp ecx
test esi, esi
je 0x5d46df
lea eax, [edx - 1]
xor esi, esi
mov dword [esp + 0x14], 0
xor ecx, ecx
mov dword [esp + 0xc], eax
xor eax, eax
nop word cs:[eax + eax]
nop
mov edx, dword [esp + 8]
cmp ecx, 0x3f
movzx edx, byte [edx + esi + 1]
jne 0x5d3797
cmp dl, 2
jae 0x5d46a9
mov dh, dl
xor edi, edi
mov dword [esp + 0x10], esi
mov esi, eax
mov eax, 0
and dh, 0x7f
movzx ebx, dh
shld edi, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne edi, ebx
cmovne ebx, eax
mov eax, esi
or dword [esp + 0x14], ebx
or eax, edi
test dl, dl
jns 0x5d37d9
mov esi, dword [esp + 0x10]
add ecx, 7
inc esi
cmp dword [esp + 0xc], esi
jne 0x5d3780
jmp 0x5d46c1
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x10]
test eax, eax
jne 0x5d53a9
mov ecx, edx
mov eax, dword [esp + 8]
sub ecx, esi
add ecx, 0xfffffffe
cmp ecx, dword [esp + 0x14]
jb 0x5d4923
mov ecx, dword [esp + 0x14]
add ecx, eax
lea ebx, [esi + ecx + 2]
mov ecx, dword [esp + 0x14]
mov edi, ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x180], ebx
sub edx, ecx
sub edx, esi
add edx, 0xfffffffe
test ecx, ecx
mov dword [esp + 0x184], edx
je 0x5d4923
lea edi, [eax + esi + 3]
dec ecx
mov dword [esp + 0x204], edi
mov dword [esp + 0x18], ecx
mov dl, byte [eax + esi + 2]
dec dl
cmp dl, 3
ja 0x5d3c48
movzx edx, dl
mov cl, 0x10
mov edx, dword [edx*4 + 0x5d57bc]
add edx, dword [esp + 0x24]
jmp edx
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xec]
cmp eax, edx
jb 0x5d53bf
add ecx, edx
cmp eax, edx
je 0x5d53bf
movzx ebx, byte [ecx]
test ebx, ebx
je 0x5d34cf
cmp bl, 1
jne 0x5d3d4c
mov eax, dword [esp + 8]
test esi, esi
je 0x5d4714
lea ecx, [eax + 2]
mov eax, 2
mov esi, 0x3f
sub eax, dword [esp + 4]
movzx edx, byte [ecx - 1]
test esi, esi
jne 0x5d3949
cmp dl, 2
jae 0x5d5390
test dl, dl
jns 0x5d40a6
inc eax
inc ecx
add esi, 0xfffffff9
cmp eax, 1
jne 0x5d3938
jmp 0x5d539c
movzx eax, byte [esp + 0x3c]
movsd xmm1, qword [esp + 0x70]
movsd xmm0, qword [esp + 0x68]
movsd xmm3, qword [esp + 0x80]
mov eax, dword [eax*4 + 0x5d57ec]
movsd qword [esp + 0x1d8], xmm1
movsd xmm1, qword [esp + 0x78]
movsd qword [esp + 0x1d0], xmm0
movsd qword [esp + 0x1e8], xmm3
movsd qword [esp + 0x1e0], xmm1
movsd xmm1, qword [esp + 0x88]
add eax, dword [esp + 0x24]
movsd qword [esp + 0x1f0], xmm1
jmp eax
mov eax, dword [esp + 0xc]
neg dword [esp + 8]
xor edx, edx
mov edi, esi
xor ecx, ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x34], eax
test edi, edi
je 0x5d568b
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 8]
mov ebx, edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x20], edi
neg ebx
lea edx, [ecx + 1]
add eax, ecx
xor ecx, ecx
mov edi, edx
movzx edx, byte [edi - 1]
cmp ecx, 0x3f
jne 0x5d3db1
cmp dl, 2
jae 0x5d48f5
mov dword [esp + 0x18], ebx
mov ebx, edx
mov dword [esp + 0x28], edi
mov esi, 0
and bl, 0x7f
movzx edi, bl
xor ebx, ebx
shld ebx, edi, cl
shl edi, cl
test cl, 0x20
cmovne ebx, edi
cmovne edi, esi
mov esi, dword [esp + 0x10]
or dword [esp + 0x40], ebx
or esi, edi
test dl, dl
jns 0x5d3dfd
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x18]
add ecx, 7
inc eax
mov dword [esp + 0x10], esi
inc edi
inc ebx
jne 0x5d3d9f
jmp 0x5d4930
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
shr esi, 8
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x180], edx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x40]
inc ecx
not edi
cmp ecx, ebx
mov dword [esp + 0x184], edi
mov dword [esp + 4], edx
mov edx, esi
mov esi, dword [esp + 0x38]
jne 0x5d3d66
cmp esi, eax
jae 0x5d34cf
jmp 0x5d4714
neg eax
mov dword [esp + 0x180], ecx
mov dword [esp + 0x184], eax
jmp 0x5d34cf
mov dl, byte [esp + 0x13c]
test dl, dl
je 0x5d56de
movzx ecx, ah
mov eax, ecx
div dl
movsx edi, byte [esp + 0x13b]
movzx eax, ah
mov esi, edi
sar esi, 0x1f
add eax, edi
adc esi, 0
js 0x5d4330
add eax, dword [esp + 0x158]
adc esi, dword [esp + 0x15c]
jmp 0x5d4374
mov edi, eax
mov ebx, 0
mov word [esp + 8], cx
mov ecx, dword [esp + 0x15c]
neg edi
sbb ebx, esi
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x158]
mov dword [esp + 0x10], ebx
add eax, dword [esp + 0x10]
adc esi, ecx
cmp dword [esp + 0x10], edi
sbb ecx, dword [esp + 4]
mov ecx, 0
cmovb esi, ecx
cmovb eax, ecx
movzx ecx, word [esp + 8]
mov dword [esp + 0x158], eax
mov eax, ecx
mov dword [esp + 0x15c], esi
div dl
mov dl, byte [esp + 0x139]
mov cl, byte [esp + 0x138]
cmp dl, 1
jne 0x5d43cc
movzx ecx, cl
movzx edx, al
mov eax, ecx
mul edx
add dword [esp + 0x140], eax
adc dword [esp + 0x144], edx
mov dword [esp + 0x14c], 0
mov dword [esp + 0x148], 0
jmp 0x5d4450
test dl, dl
je 0x5d56cd
movzx edi, al
mov ebx, dword [esp + 0x14c]
movzx edx, dl
movzx ecx, cl
add edi, dword [esp + 0x148]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
adc ebx, 0
push 0
push edx
push ebx
push edi
call fcn.006025ac
add esp, 0x10
mov dword [esp + 0x10], eax
mov ecx, edx
mov esi, edx
mov edx, dword [esp + 8]
movaps xmm2, xmmword [0x607490]
mov eax, dword [esp + 0x10]
imul esi, edx
mul edx
add edx, esi
add dword [esp + 0x140], eax
mov eax, dword [esp + 0x10]
adc dword [esp + 0x144], edx
mov edx, dword [esp + 4]
imul ecx, edx
mul edx
add edx, ecx
sub edi, eax
sbb ebx, edx
mov dword [esp + 0x148], edi
mov dword [esp + 0x14c], ebx
cmp byte [esp + 0x17a], 0
je 0x5d44ec
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x5d4623
mov eax, dword [esp + 0x50]
mov esi, dword [0x6d3de0]
mov ecx, dword [esp + 0x54]
mov edx, dword [eax + 4]
mov edi, dword [eax]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x144]
cmp ecx, ebx
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 4], edx
mov edx, dword [esp + 0x140]
mov dword [esp + 0x10], edi
mov dword [esp + 8], edx
jbe 0x5d45c8
lea edx, [ebx*8]
lea edi, [edx + edx*2]
test edi, edi
je 0x5d463e
push edi
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapReAlloc
movaps xmm2, xmmword [0x607490]
test eax, eax
mov dword [esp + 0x14], eax
jne 0x5d45cc
jmp 0x5d5433
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
mov esi, 0
mov edi, dword [esp + 0x140]
mov ebx, dword [esp + 0x144]
mov ecx, edx
sub ecx, 1
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*8]
cmovb ecx, esi
mov esi, dword [esp + 0x154]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x150]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x158]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x160]
jb 0x5d457d
mov dword [esp + 0xc], esi
mov esi, ebx
mov ebx, dword [ecx]
mov dword [esp + 0x14], edi
xor ebx, edi
mov edi, dword [ecx + 4]
xor edi, esi
or edi, ebx
mov ebx, esi
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x14]
jne 0x5d457d
mov eax, dword [esp + 4]
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edi
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], esi
jmp 0x5d4623
cmp edx, dword [esp + 0x54]
jne 0x5d459b
lea ecx, [esp + 0x50]
call fcn.005d0630
movaps xmm2, xmmword [0x607490]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
lea ecx, [edx + edx*2]
inc edx
mov dword [eax + ecx*8], edi
mov edi, dword [esp + 8]
mov dword [eax + ecx*8 + 4], ebx
mov ebx, dword [esp + 0x10]
mov dword [eax + ecx*8 + 0xc], edi
mov edi, dword [esp + 4]
mov dword [eax + ecx*8 + 8], edi
mov dword [eax + ecx*8 + 0x10], ebx
mov dword [eax + ecx*8 + 0x14], esi
mov dword [esp + 0x58], edx
jmp 0x5d4623
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x64]
cmp edx, dword [esp + 0x60]
jne 0x5d45ee
lea ecx, [esp + 0x5c]
mov edi, esi
call fcn.005d0630
movaps xmm2, xmmword [0x607490]
mov edx, dword [esp + 0x64]
jmp 0x5d45f0
mov edi, esi
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 4]
lea ecx, [edx + edx*2]
inc edx
mov dword [eax + ecx*8 + 4], esi
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*8], esi
mov esi, dword [esp + 8]
mov dword [eax + ecx*8 + 0xc], edi
mov dword [eax + ecx*8 + 8], esi
mov esi, dword [esp + 0x14]
mov dword [eax + ecx*8 + 0x10], esi
mov dword [eax + ecx*8 + 0x14], ebx
mov dword [esp + 0x64], edx
mov al, byte [esp + 0x17a]
lea ecx, [esp + 0x118]
test al, al
jne 0x5d3436
jmp 0x5d34a7
shl ecx, 3
mov dword [esp + 0x14], 8
lea ecx, [ecx + ecx*2]
test ecx, ecx
je 0x5d45cc
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
movaps xmm2, xmmword [0x607490]
jmp 0x5d45cc
mov esi, edx
mov ecx, ebx
test ecx, ecx
jne 0x5d3047
mov ecx, esi
jmp 0x5d46a0
mov esi, ebx
test esi, esi
jne 0x5d30f3
mov ecx, edi
mov edx, ebx
call fcn.0040a640
ud2
mov eax, dword [esp + 8]
xor edx, edx
lea eax, [eax + esi + 2]
mov esi, 6
mov dword [esp + 0x180], eax
jmp 0x5d46e6
mov ebx, dword [esp + 8]
add ebx, dword [esp + 4]
mov dword [esp + 0x180], ebx
mov dword [esp + 0x184], 0
mov dword [esp + 0xc], ebx
mov esi, 0x13
xor edx, edx
and edx, 0xffffff
xor edi, edi
mov ecx, edx
shr ecx, 8
jmp 0x5d54e9
mov dword [esp + 0x180], ebx
mov dword [esp + 0x184], 0
mov dword [esp + 0xc], ebx
mov esi, 0x13
xor ecx, ecx
xor edx, edx
xor edi, edi
jmp 0x5d54e9
xor edx, edx
xor edi, edi
jmp 0x5d54e9
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x5c]
cmp ebx, 0x15
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ebx
jae 0x5d48b5
cmp ebx, 2
jb 0x5d5070
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
xor edx, edx
lea edi, [eax - 1]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
jmp 0x5d47ba
add ebx, eax
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x14]
mov dword [ebx], ecx
mov dword [ebx + 4], esi
movsd xmm0, qword [esp + 0x188]
movsd xmm1, qword [esp + 0x190]
movsd qword [ebx + 8], xmm0
movsd qword [ebx + 0x10], xmm1
add edx, 0xffffffe8
test edi, edi
je 0x5d5070
mov dword [esp + 0x14], edi
lea ebx, [edi + edi*2]
mov edi, dword [esp + 0x18]
mov dword [esp + 4], edx
mov edx, dword [edi + ebx*8 - 0x18]
mov ecx, dword [edi + ebx*8 - 0x14]
mov esi, dword [edi + ebx*8 + 4]
cmp dword [edi + ebx*8], edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 4]
mov dword [esp + 8], ecx
sbb esi, ecx
mov esi, dword [esp + 0x14]
lea edi, [esi - 1]
jae 0x5d47af
mov esi, dword [esp + 0x18]
lea ecx, [edi + edi*2]
mov dword [esp + 0x14], edi
movsd xmm0, qword [esi + ecx*8 + 8]
movsd xmm1, qword [esi + ecx*8 + 0x10]
mov ecx, dword [esp + 0x20]
sub ecx, edi
movsd qword [esp + 0x190], xmm1
movsd qword [esp + 0x188], xmm0
cmp ecx, 3
lea ecx, [esi + ebx*8 - 0x18]
lea ebx, [esi + ebx*8]
movsd xmm0, qword [ebx + 0x10]
movsd qword [ecx + 0x10], xmm0
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
jb 0x5d4782
mov edi, dword [esp + 0x10]
mov esi, dword [ecx + 0x34]
cmp dword [ecx + 0x30], edi
mov ecx, edx
sbb esi, dword [esp + 8]
jae 0x5d4782
movsd xmm0, qword [eax + ecx + 0x10]
mov ebx, ecx
movsd qword [eax + ecx - 8], xmm0
movsd xmm0, qword [eax + ecx]
movsd xmm1, qword [eax + ecx + 8]
movsd qword [eax + ecx - 0x10], xmm1
movsd qword [eax + ecx - 0x18], xmm0
add ecx, 0x18
je 0x5d4780
mov edi, dword [esp + 0x10]
mov esi, dword [eax + ebx + 0x1c]
cmp dword [eax + ebx + 0x18], edi
sbb esi, dword [esp + 8]
jb 0x5d4860
jmp 0x5d4780
mov eax, ebx
mov edx, 0x18
xor ecx, ecx
shr eax, 1
mul edx
setno dl
jo 0x5d56f7
mov cl, dl
shl ecx, 3
test eax, eax
js 0x5d56f7
mov edx, ecx
mov dword [esp + 0x9c], eax
je 0x5d4972
mov ecx, eax
mov esi, edx
call fcn.00404a50
jmp 0x5d4976
mov edx, dword [esp + 0x14]
not ebx
mov ecx, 6
mov dword [esp + 0x180], edi
mov dword [esp + 0x184], ebx
jmp 0x5d4953
lea eax, [eax + esi + 2]
mov dword [esp + 0xc], eax
jmp 0x5d4714
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x20]
mov ebx, eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], 0
xor edx, edx
mov ecx, 0x13
and edx, 0xffffff
xor edi, edi
mov dword [esp + 0xc], ebx
mov eax, edx
shl eax, 8
or eax, ecx
mov ecx, edx
mov esi, eax
shr ecx, 8
jmp 0x5d54e9
mov esi, edx
mov eax, edx
test eax, eax
mov dword [esp + 0x10], eax
je 0x5d5779
mov eax, dword [esp + 0x18]
mov esi, dword [0x6d6b64]
lea ecx, [eax - 0x48]
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x4c], ecx
lea ecx, [eax - 0x18]
add eax, 0x18
mov dword [esp + 0x38], ecx
xor ecx, ecx
mov dword [esp + 0xa4], eax
jmp 0x5d49cd
mov ecx, 1
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x5d5022
mov eax, ebx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x24], esi
dec eax
je 0x5d4a3a
mov dword [esp + 4], eax
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x18]
mov ecx, ebx
lea ebx, [ebx + ebx*2]
mov dword [esp + 0xc], ecx
mov edi, dword [eax + ebx*8 - 0x30]
mov esi, dword [eax + edx*8 + 4]
cmp dword [eax + edx*8], edi
mov edx, ebx
mov ebx, dword [eax + ebx*8 - 0x2c]
sbb esi, ebx
jae 0x5d4a44
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 4]
mov dword [esp + 8], edx
lea esi, [eax + edx*8]
nop word cs:[eax + eax]
nop dword [eax]
cmp ecx, 1
je 0x5d4a8d
mov edx, dword [esi]
mov eax, dword [esi + 4]
dec ecx
add esi, 0xffffffe8
cmp edi, edx
mov edi, edx
sbb ebx, eax
mov ebx, eax
jb 0x5d4a20
jmp 0x5d4a8f
mov esi, 1
jmp 0x5d4ce1
mov eax, dword [esp + 0x4c]
add ecx, 0xfffffffe
xor esi, esi
mov dword [esp + 8], ecx
lea eax, [eax + edx*8]
nop word cs:[eax + eax]
nop
cmp dword [esp + 8], esi
je 0x5d4cdd
mov edx, dword [eax]
mov ecx, dword [eax + 4]
inc esi
add eax, 0xffffffe8
cmp edi, edx
mov edi, edx
sbb ebx, ecx
mov ebx, ecx
jae 0x5d4a60
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
sub ecx, esi
inc esi
jmp 0x5d4b4f
xor ecx, ecx
mov edx, dword [esp + 0xc]
mov esi, edx
sub esi, ecx
jb 0x5d5739
cmp edx, dword [esp + 0x20]
ja 0x5d5748
cmp esi, 2
jb 0x5d4b4f
mov dword [esp + 4], ecx
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x18]
mov edi, esi
shr edi, 1
lea ebx, [ecx + eax*8]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 8]
lea eax, [eax + ecx*8]
nop dword [eax]
movsd xmm0, qword [ebx + 0x10]
movsd qword [esp + 0x198], xmm0
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
movsd qword [esp + 0x190], xmm1
movsd qword [esp + 0x188], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [ebx + 0x10], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ebx + 8], xmm1
movsd qword [ebx], xmm0
add ebx, 0x18
movsd xmm0, qword [esp + 0x198]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esp + 0x188]
movsd xmm1, qword [esp + 0x190]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
add eax, 0xffffffe8
dec edi
jne 0x5d4ad0
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x5d4cd9
cmp esi, 9
ja 0x5d4cd9
cmp edx, dword [esp + 0x20]
ja 0x5d575d
lea eax, [ecx + ecx*2]
mov esi, ecx
mov ecx, dword [esp + 0xa4]
lea eax, [ecx + eax*8]
mov ecx, esi
not esi
add esi, edx
mov edx, eax
mov dword [esp + 0x3c], esi
nop word cs:[eax + eax]
nop
mov esi, dword [esp + 0xc]
lea edi, [ecx - 1]
sub esi, edi
jb 0x5d5724
cmp esi, 1
jbe 0x5d4cc1
lea eax, [edi + edi*2]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x18]
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x14], edx
mov dword [esp + 0x48], eax
lea eax, [edi + eax*8]
mov edx, dword [edi + ecx*8 + 4]
mov ebx, dword [eax]
cmp dword [edi + ecx*8], ebx
mov dword [esp + 8], ebx
mov ebx, dword [eax + 4]
mov edi, dword [esp + 0x30]
sbb edx, ebx
mov edx, dword [esp + 0x14]
mov dword [esp + 4], ebx
jae 0x5d4cc1
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x48]
cmp esi, 3
movsd xmm0, qword [edx + edi*8 + 8]
movsd xmm1, qword [edx + edi*8 + 0x10]
lea ecx, [edx + ecx*8]
movsd qword [esp + 0x190], xmm1
movsd qword [esp + 0x188], xmm0
movsd xmm0, qword [ecx + 0x10]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
jb 0x5d4c90
mov edi, dword [esp + 8]
mov edx, dword [eax + 0x34]
cmp dword [eax + 0x30], edi
mov eax, dword [esp + 0x3c]
sbb edx, dword [esp + 4]
mov edx, dword [esp + 0x14]
jae 0x5d4c90
nop word [eax + eax]
movsd xmm0, qword [edx + 0x10]
mov ecx, edx
dec eax
movsd qword [edx - 8], xmm0
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [edx - 0x10], xmm1
movsd qword [edx - 0x18], xmm0
je 0x5d4c90
mov ebx, dword [esp + 8]
mov edi, dword [ecx + 0x1c]
lea edx, [ecx + 0x18]
cmp dword [ecx + 0x18], ebx
sbb edi, dword [esp + 4]
jb 0x5d4c50
nop word cs:[eax + eax]
nop
mov eax, dword [esp + 8]
mov edx, dword [esp + 4]
mov edi, dword [esp + 0x30]
mov dword [ecx + 4], edx
mov dword [ecx], eax
mov edx, dword [esp + 0x14]
movsd xmm0, qword [esp + 0x188]
movsd xmm1, qword [esp + 0x190]
movsd qword [ecx + 8], xmm0
movsd qword [ecx + 0x10], xmm1
test edi, edi
je 0x5d4ce3
inc dword [esp + 0x3c]
add edx, 0xffffffe8
cmp esi, 0xa
mov ecx, edi
jb 0x5d4b90
jmp 0x5d4ce3
mov edi, ecx
jmp 0x5d4ce3
mov esi, dword [esp + 0xc]
xor edi, edi
mov ecx, dword [esp + 0x44]
mov ebx, esi
mov dword [esp + 0x30], edi
cmp ecx, dword [esp + 0x6c]
jne 0x5d4d08
mov edx, ecx
lea ecx, [esp + 0x68]
call fcn.005c7320
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x70]
jmp 0x5d4d0c
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x24], esi
mov dword [esi + ecx*8], eax
mov dword [esi + ecx*8 + 4], ebx
inc ecx
cmp ecx, 2
mov eax, ecx
mov dword [esp + 0x70], ecx
jae 0x5d4d9f
jmp 0x5d49c1
mov ecx, esi
mov esi, edi
sub ebx, ecx
mov edx, 0xaaaaaaab
mov eax, ebx
mul edx
shr edx, 1
and edx, 0xfffffff8
lea eax, [edx + edx*2]
push eax
push ecx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x28]
add edx, dword [esp + 0x14]
mov dword [esi + eax*8], ecx
mov ecx, dword [esp + 0x44]
mov dword [esi + eax*8 + 4], edx
mov edx, dword [esp + 0x48]
lea eax, [esi + ecx*8]
lea ecx, [esi + ecx*8 + 8]
lea edx, [edx*8 - 0x10]
push edx
push ecx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x3c]
cmp eax, 1
mov dword [esp + 0x70], eax
jbe 0x5d49bc
cmp dword [esi + eax*8 - 8], 0
lea ebx, [eax - 1]
mov ecx, eax
mov dword [esp + 0x3c], ebx
je 0x5d4e00
mov edx, dword [esi + ecx*8 - 0xc]
mov eax, dword [esi + ebx*8 + 4]
cmp edx, eax
jbe 0x5d4e00
cmp ecx, 3
jb 0x5d500e
mov edi, ecx
add ecx, 0xfffffffd
lea ebx, [eax + edx]
mov dword [esp + 8], ecx
mov ecx, dword [esi + edi*8 - 0x14]
cmp ecx, ebx
mov dword [esp + 4], ecx
jbe 0x5d4ff7
cmp edi, 4
jb 0x5d5018
add edx, dword [esp + 4]
mov ecx, edi
cmp dword [esi + edi*8 - 0x1c], edx
mov edi, dword [esp + 4]
jbe 0x5d4e18
jmp 0x5d49c1
cmp ecx, 3
jb 0x5d4e20
mov edi, ecx
add ecx, 0xfffffffd
mov eax, dword [esi + ebx*8 + 4]
mov dword [esp + 8], ecx
mov ecx, edi
mov edi, dword [esi + edi*8 - 0x14]
cmp edi, eax
mov eax, dword [esp + 8]
jb 0x5d4e23
lea eax, [ecx - 2]
lea edi, [eax + 1]
cmp ecx, edi
jbe 0x5d54ad
mov edx, ecx
sub edx, eax
mov dword [esp + 0x48], edx
jbe 0x5d54b8
mov ecx, dword [esi + eax*8 + 8]
mov edx, esi
mov esi, dword [esi + eax*8 + 4]
mov dword [esp + 4], esi
mov esi, dword [edx + eax*8]
add esi, dword [esp + 4]
mov edx, esi
sub edx, ecx
mov dword [esp + 0xc], edx
jb 0x5d56fe
cmp esi, dword [esp + 0x20]
mov dword [esp + 0x44], edi
ja 0x5d570f
mov edx, dword [esp + 0x24]
mov dword [esp + 8], eax
mov dword [esp + 0x28], ecx
mov ebx, dword [edx + eax*8 + 0xc]
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x18]
lea ecx, [ecx + eax*8]
lea eax, [ebx + ebx*2]
mov dword [esp + 0x14], ebx
lea edi, [ecx + eax*8]
lea eax, [esi + esi*2]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc]
sub eax, ebx
cmp eax, ebx
jae 0x5d4f50
mov dword [esp + 0xc], eax
lea eax, [eax*8]
lea ebx, [eax + eax*2]
push ebx
push edi
mov esi, dword [esp + 0x18]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
add ebx, esi
cmp dword [esp + 0x14], 0
jle 0x5d4d30
cmp dword [esp + 0xc], 0
jle 0x5d4d30
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x40]
lea eax, [eax + ecx*8]
nop
mov ecx, dword [ebx - 0x18]
mov edx, dword [ebx - 0x14]
cmp ecx, dword [edi - 0x18]
sbb edx, dword [edi - 0x14]
jb 0x5d4f10
add ebx, 0xffffffe8
mov ecx, ebx
jmp 0x5d4f15
add edi, 0xffffffe8
mov ecx, edi
movsd xmm1, qword [ecx + 8]
movsd xmm0, qword [ecx]
cmp esi, edi
movsd qword [eax + 8], xmm1
movsd xmm1, qword [ecx + 0x10]
movsd qword [eax], xmm0
movsd qword [eax + 0x10], xmm1
jae 0x5d4f3e
add eax, 0xffffffe8
cmp ebx, dword [esp + 0x10]
ja 0x5d4ef0
mov ecx, dword [esp + 0x10]
jmp 0x5d4d32
lea eax, [ebx*8]
lea ebx, [eax + eax*2]
push ebx
push ecx
mov esi, dword [esp + 0x18]
push esi
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x20]
mov ecx, esi
add esp, 0xc
add ebx, esi
mov esi, dword [esp + 0x40]
test eax, eax
jle 0x5d4d34
cmp dword [esp + 0xc], eax
jle 0x5d4d34
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x34]
lea eax, [eax + edx*8]
nop word cs:[eax + eax]
nop dword [eax]
mov edx, ecx
mov ecx, dword [edi]
cmp ecx, dword [edx]
mov ecx, dword [edi + 4]
sbb ecx, dword [edx + 4]
setae cl
movzx ecx, cl
lea ecx, [ecx + ecx*2]
lea ecx, [edx + ecx*8]
cmovb edx, edi
movsd xmm1, qword [edx + 8]
movsd xmm0, qword [edx]
movsd qword [esi + 8], xmm1
movsd xmm1, qword [edx + 0x10]
setb dl
movsd qword [esi], xmm0
cmp ecx, ebx
movsd qword [esi + 0x10], xmm1
lea esi, [esi + 0x18]
jae 0x5d4d34
movzx edx, dl
lea edx, [edx + edx*2]
lea edi, [edi + edx*8]
cmp edi, eax
jb 0x5d4fa0
jmp 0x5d4d34
mov ecx, edi
mov edi, dword [esp + 4]
cmp edi, eax
mov eax, dword [esp + 8]
jae 0x5d4e20
jmp 0x5d4e23
mov ecx, 2
jmp 0x5d49c1
mov ecx, 3
jmp 0x5d49c1
test dword [esp + 0x6c], 0x1fffffff
je 0x5d503a
push esi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0x9c]
mov ecx, 0xaaaaaaab
mov eax, esi
mul ecx
cmp esi, 0x18
jb 0x5d5070
shr edx, 1
mov ecx, esi
and edx, 0xfffffff8
lea eax, [edx + edx*2]
sub ecx, eax
cmp esi, ecx
je 0x5d5070
push dword [esp + 0x10]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [0x6d6b64]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
cmp word [ecx + 0x8e], 5
jae 0x5d50ad
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov eax, dword [ecx]
xor eax, 0x2e
or eax, dword [ecx + 4]
mov eax, ecx
jne 0x5d50c0
jmp 0x5d5110
mov edx, dword [esp + 0x1c]
cmp dword [edx + 0xb0], 0
je 0x5d5110
mov eax, dword [edx + 0xa8]
lea ecx, [esp + 0x188]
push dword [ebp + 8]
push dword [esp + 0x30]
push eax
call fcn.005d6270
add esp, 0xc
cmp dword [esp + 0x188], 1
jne 0x5d5141
mov eax, dword [esp + 0x194]
mov ecx, dword [esp + 0x198]
mov esi, dword [esp + 0x190]
mov edi, dword [esp + 0x19c]
mov ebx, dword [0x6d6b64]
mov dword [esp + 4], eax
mov dword [esp + 0xc], ecx
jmp 0x5d5351
lea ecx, [esp + 0x68]
xor edx, edx
call fcn.005d6580
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x68]
lea eax, [ecx + ecx*2]
mov esi, edx
mov dword [edx + eax*4], 1
mov dword [edx + eax*4 + 4], 0
mov dword [edx + eax*4 + 8], 0
jmp 0x5d5179
mov esi, dword [esp + 0x18c]
mov edi, dword [esp + 0x190]
mov ebx, dword [esp + 0x194]
lea ecx, [esp + 0x68]
xor edx, edx
call fcn.005d6580
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x68]
lea eax, [ecx + ecx*2]
mov dword [edx + eax*4], esi
mov esi, edx
mov dword [edx + eax*4 + 4], edi
mov dword [edx + eax*4 + 8], ebx
mov edx, dword [esp + 0x1c]
inc ecx
mov edi, 1
mov dword [esp + 8], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x70], ecx
xor ecx, ecx
jmp 0x5d51c8
lea eax, [edx + edx*2]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 8], edi
inc edx
mov dword [edi + eax*4], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
mov dword [edi + eax*4 + 4], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + eax*4 + 8], ecx
mov ecx, dword [esp + 4]
mov edi, esi
mov dword [esp + 0x70], edx
mov edx, ebx
add edi, 1
adc ecx, 0
mov eax, dword [esp + 0x2c]
cmp word [eax + 0x8e], 5
jae 0x5d51f4
mov eax, edi
or eax, ecx
je 0x5d527d
lea eax, [edi - 1]
cmp eax, dword [edx + 0xb0]
jae 0x5d5291
imul eax, eax, 0x38
jmp 0x5d5203
cmp dword [edx + 0xb0], edi
jbe 0x5d5291
imul eax, edi, 0x38
add eax, dword [edx + 0xa8]
mov esi, edi
mov edi, dword [esp + 8]
mov dword [esp + 4], ecx
lea ecx, [esp + 0x188]
push dword [ebp + 8]
push dword [esp + 0x30]
push eax
call fcn.005d6270
add esp, 0xc
cmp dword [esp + 0x188], 1
je 0x5d52e4
mov edx, dword [esp + 0x194]
mov eax, dword [esp + 0x190]
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
cmp edx, dword [esp + 0x6c]
jne 0x5d5193
mov edi, ecx
lea ecx, [esp + 0x68]
call fcn.005d6580
mov ecx, edi
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x70]
jmp 0x5d5193
mov esi, dword [esp + 0x2c]
mov eax, dword [esi]
xor eax, 0x2e
or eax, dword [esi + 4]
mov eax, esi
jne 0x5d5209
mov ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x68]
cmp ecx, esi
jbe 0x5d53f0
test eax, eax
je 0x5d53f0
lea edx, [esi*4]
lea ebx, [edx + edx*2]
test ebx, ebx
je 0x5d53d3
push ebx
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
jne 0x5d53f0
mov ecx, ebx
mov edx, 4
call fcn.0040a640
ud2
mov eax, dword [esp + 0x194]
mov esi, dword [esp + 0x190]
mov edi, dword [esp + 0x19c]
mov ebx, dword [esp + 0x68]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5d5351
lea eax, [eax + eax*2]
mov dword [esp + 0x14], esi
mov dword [esp + 8], edi
mov edi, ebx
lea esi, [ebx + eax*4]
jmp 0x5d532d
add edi, 0xc
cmp edi, esi
je 0x5d5349
cmp dword [edi + 4], 0
je 0x5d5326
mov eax, dword [edi]
test eax, eax
je 0x5d5326
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x5d5326
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x5d5511
test ebx, ebx
je 0x5d5511
shl eax, 2
lea eax, [eax + eax*2]
test eax, eax
je 0x5d5511
push ebx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x5d5511
xor ecx, ecx
mov esi, 6
jmp 0x5d4732
mov ebx, dword [esp + 8]
add ebx, dword [esp + 4]
jmp 0x5d46fe
mov edx, dword [esp + 0x14]
mov esi, 0x35
mov dword [esp + 4], eax
shrd edx, eax, 8
jmp 0x5d46e6
mov dword [esp + 0xc], ecx
mov esi, 0x13
xor edx, edx
xor ecx, ecx
xor edi, edi
jmp 0x5d54e9
shl ecx, 2
lea ecx, [ecx + ecx*2]
test ecx, ecx
je 0x5d53eb
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, 4
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x5c]
cmp ecx, edi
mov edx, edi
mov dword [esp + 0xc], edi
jbe 0x5d545e
test eax, eax
je 0x5d545e
mov edx, dword [esp + 0xc]
lea edx, [edx*8]
lea edi, [edx + edx*2]
test edi, edi
je 0x5d5441
push edi
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
jne 0x5d545e
mov ecx, edi
mov edx, 8
call fcn.0040a640
ud2
shl ecx, 3
lea ecx, [ecx + ecx*2]
test ecx, ecx
je 0x5d5459
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, 8
lea ecx, [esp + 0xa8]
mov dword [esp + 4], eax
call fcn.005d6610
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x5d5496
mov eax, dword [esp + 0x50]
test eax, eax
je 0x5d5496
shl ecx, 3
lea ecx, [ecx + ecx*2]
test ecx, ecx
je 0x5d5496
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov dword [esp + 8], 0
xor eax, eax
jmp 0x5d55c3
mov edx, ecx
mov ecx, edi
push 0x6d3eb0
jmp 0x5d54c1
mov edx, ecx
mov ecx, eax
push 0x6d3ec0
call fcn.0045a150
add esp, 4
ud2
movzx eax, dl
shl ecx, 0x10
mov dword [esp + 0x180], str._cargo_registry_src_github.com_1ecc6299db9ec823_utfx_0.1.0_src_ucstr.rs
mov dword [esp + 0x184], 0
shl eax, 8
or eax, ecx
mov ecx, esi
movzx esi, cl
or esi, eax
lea ecx, [esp + 0xa8]
mov dword [esp + 8], edi
mov dword [esp + 0x10], esi
call fcn.005d6610
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x5d554d
mov eax, dword [esp + 0x50]
test eax, eax
je 0x5d554d
shl ecx, 3
lea ecx, [ecx + ecx*2]
test ecx, ecx
je 0x5d554d
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x5c]
test eax, eax
je 0x5d5596
shl eax, 3
lea esi, [ebx + 0x14]
lea edi, [eax + eax*2]
jmp 0x5d5578
add esi, 0x18
add edi, 0xffffffe8
je 0x5d5596
mov eax, dword [esi]
shl eax, 3
lea eax, [eax + eax*2]
test eax, eax
je 0x5d5570
push dword [esi - 4]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x5d5570
mov eax, dword [esp + 0x60]
test eax, eax
je 0x5d55b6
shl eax, 3
lea eax, [eax + eax*2]
test eax, eax
je 0x5d55b6
push ebx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov eax, 1
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], esi
mov ebx, esi
mov esi, ecx
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0xc]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], edi
mov edi, dword [esp + 8]
mov dword [esp + 0xbc], edi
cmp dword [edx + 0x118], 2
jne 0x5d5630
mov dword [edx + 0x118], eax
mov dword [edx + 0x11c], esi
mov esi, dword [esp + 0xc]
mov dword [edx + 0x120], ebx
mov dword [edx + 0x124], ecx
mov dword [edx + 0x12c], edi
mov dword [edx + 0x128], esi
jmp 0x5d5646
lea ecx, [esp + 0xa8]
call fcn.005d66b0
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x118]
mov ecx, dword [esp + 0x1cc]
mov esi, edx
xor edx, edx
cmp eax, 1
sete dl
test eax, eax
lea edx, [esi + edx*4 + 0x11c]
je 0x5d567c
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
mov eax, 1
movsd qword [ecx + 0x10], xmm1
movsd qword [ecx + 8], xmm0
jmp 0x5d5681
mov dword [ecx + 4], edx
xor eax, eax
mov dword [ecx], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [esp + 0x34]
jmp 0x5d494c
mov ecx, str.attempt_to_divide_by_zero
mov edx, 0x19
push 0x6d3458
jmp 0x5d56ed
mov ecx, 0x6d3490
mov edx, 0x39
push 0x6d3fb4
call fcn.0045aec0
add esp, 4
ud2
call fcn.0040a620
ud2
mov edx, esi
push 0x6d3ed0
call fcn.0045ce70
add esp, 4
ud2
mov edx, dword [esp + 0x20]
mov ecx, esi
push 0x6d3ed0
call fcn.0045ab50
add esp, 4
ud2
mov ecx, edi
mov edx, dword [esp + 0xc]
push 0x6d3ea0
call fcn.0045ce70
add esp, 4
ud2
push 0x6d3e90
call fcn.0045ce70
add esp, 4
ud2
mov ecx, edx
mov edx, dword [esp + 0x20]
push 0x6d3e90
call fcn.0045ab50
add esp, 4
ud2
dec ecx
cmp edx, ecx
jb 0x5d5726
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
push 0x6d3ea0
call fcn.0045ab50
add esp, 4
ud2
mov ecx, dword [esp + 0x9c]
mov edx, esi
call fcn.0040a640
ud2