Function at 0x10026430
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x260
mov ebx, edx
call 0x10026446
pop edx
mov eax, dword [ebx + 0xc8]
xor eax, 0x2f
or eax, dword [ebx + 0xcc]
jne 0x10026464
mov dword [ecx + 4], 0
jmp 0x1002832d
mov eax, dword [ebx]
cmp eax, 2
jne 0x10028309
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 8
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 8
mov dword [esp + 0x94], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x38], edx
xor esi, esi
mov dword [esp + 0x1c], ebx
mov edi, dword [ebx + 0x131]
mov ecx, dword [ebx + 0xf8]
mov eax, dword [ebx + 0x12c]
movsd xmm0, qword [ebx + 0xf0]
movzx edx, byte [ebx + 0x135]
mov dword [esp + 0x24], edi
mov edi, dword [ebx + 0xa8]
mov dword [esp + 0x2c], ecx
movzx ecx, byte [ebx + 0x130]
movaps xmmword [esp + 0x40], xmm0
mov byte [esp + 0xc], dl
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], edi
mov edi, dword [ebx + 0xac]
mov byte [esp + 8], cl
mov ecx, dword [ebx + 0x104]
mov dword [esp + 0x3c], edi
mov edi, dword [ebx + 0x100]
test ecx, ecx
mov dword [esp + 4], ecx
mov dword [esp + 0x10], edi
je 0x1002658b
xor ebx, ebx
cmp ecx, 0x20000000
setb al
jae 0x10029174
mov bl, al
lea edi, [ecx*4]
add ebx, ebx
test edi, edi
js 0x10029174
je 0x100280a5
mov eax, dword [0x1036e078]
test eax, eax
jne 0x10026574
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x100280af
mov dword [0x1036e078], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100280af
mov ebx, dword [esp + 0x1c]
jmp 0x10026592
mov eax, 2
xor edi, edi
push edi
push dword [esp + 0x14]
mov dword [esp + 0x18], eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [ebx + 0x110]
mov edi, dword [ebx + 0x10c]
test ecx, ecx
mov dword [esp + 0x14], ecx
je 0x10026613
xor ebx, ebx
cmp ecx, 0x8000000
setb al
jae 0x1002917e
mov esi, ecx
mov bl, al
shl esi, 4
shl ebx, 3
test esi, esi
js 0x1002917e
je 0x100280bd
mov eax, dword [0x1036e078]
test eax, eax
jne 0x100265fc
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x100280c7
mov dword [0x1036e078], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100280c7
mov ebx, dword [esp + 0x1c]
jmp 0x10026618
mov eax, 8
push esi
push edi
mov dword [esp + 0x20], eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [ebx + 0x11c]
mov esi, dword [ebx + 0x118]
test ecx, ecx
mov dword [esp + 0x68], ecx
je 0x10026697
xor ebx, ebx
cmp ecx, 0x20000000
setb al
jae 0x10029188
mov bl, al
lea edi, [ecx*4]
add ebx, ebx
test edi, edi
js 0x10029188
je 0x100280d5
mov eax, dword [0x1036e078]
test eax, eax
jne 0x10026680
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x100280df
mov dword [0x1036e078], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100280df
mov ebx, dword [esp + 0x1c]
jmp 0x1002669e
mov eax, 2
xor edi, edi
push edi
push esi
mov dword [esp + 0x3c], eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, dword [ebx + 0x128]
mov edx, dword [ebx + 0x124]
test esi, esi
mov dword [esp + 0x60], esi
je 0x1002672c
xor ebx, ebx
cmp esi, 0x2492493
setb al
jae 0x10029192
mov bl, al
imul ecx, esi, 0x38
shl ebx, 3
test ecx, ecx
js 0x10029192
je 0x100280ed
mov eax, dword [0x1036e078]
mov dword [esp + 0x20], edx
test eax, eax
jne 0x1002670b
mov edi, ecx
call sub.KERNEL32.dll_GetProcessHeap
mov ecx, edi
test eax, eax
je 0x100280f7
mov dword [0x1036e078], eax
push ecx
push 0
push eax
mov edi, ecx
call sub.KERNEL32.dll_HeapAlloc
mov edx, dword [esp + 0x20]
mov ecx, edi
mov edi, eax
test edi, edi
je 0x100280f7
mov ebx, dword [esp + 0x1c]
jmp 0x10026733
mov edi, 8
xor ecx, ecx
lea esi, [ebx + 0xc8]
push ecx
push edx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 0xb0]
mov ecx, dword [ebx + 0xa0]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0xb4]
mov dword [esp + 0x64], eax
mov eax, dword [ebx + 0xc8]
xor eax, 0x2e
or eax, dword [ebx + 0xcc]
mov eax, dword [ebx + 0xa4]
mov dword [esp + 0x7c], eax
jne 0x10026786
movaps xmm1, xmmword [0x10040430]
jmp 0x100267ea
mov dword [esp + 0xd4], edi
mov edi, ecx
lea ecx, [esp + 0x98]
mov edx, esi
call fcn.10029750
movsd xmm1, qword [ebx + 0xb8]
mov ecx, edi
mov eax, dword [ebx + 0xec]
mov edi, dword [esp + 0xd4]
movups xmm0, xmmword [ebx + 0xd8]
mov edx, dword [ebx + 0xe8]
movsd xmm2, qword [ebx + 0xc0]
movsd qword [esp + 0x1f0], xmm1
movups xmm1, xmmword [esp + 0x98]
mov dword [esp + 0xd8], eax
movsd qword [esp + 0x1f8], xmm2
mov eax, dword [esp + 4]
mov esi, dword [esp + 0x10]
movsd xmm2, qword [esp + 0x1f0]
movsd xmm3, qword [esp + 0x1f8]
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], esi
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], esi
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 0x7c]
movsd qword [esp + 0x140], xmm2
movsd qword [esp + 0x148], xmm3
mov dword [esp + 0x128], ecx
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x64], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x138], esi
mov dword [esp + 0x13c], ecx
movaps xmmword [esp + 0x150], xmm1
movaps xmmword [esp + 0x160], xmm0
movaps xmm0, xmmword [esp + 0x40]
mov dword [esp + 0x170], edx
movaps xmm1, xmmword [0x10040440]
xor edx, edx
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x2c]
movlps qword [esp + 0x178], xmm0
xorps xmm0, xmm0
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], edi
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x28]
mov edi, 8
mov dword [esp + 0x1b4], eax
movzx eax, byte [esp + 8]
mov byte [esp + 0x1b8], al
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1b9], eax
lea eax, [ebx + 0xa0]
mov dword [esp + 0xd8], eax
movzx eax, byte [esp + 0xc]
mov byte [esp + 0x1bd], al
movaps xmmword [esp + 0xe0], xmm0
movaps xmmword [esp + 0xf0], xmm1
movaps xmmword [esp + 0x100], xmm0
mov byte [esp + 0x118], al
lea eax, [esp + 0x98]
mov dword [esp + 0x119], 0
mov dword [esp + 0x120], esi
mov dword [esp + 0x124], ecx
mov ecx, 8
mov dword [esp + 0x234], eax
xor eax, eax
test al, al
mov dword [esp + 0x68], edx
mov dword [esp + 0x60], ecx
je 0x10026a1d
movzx eax, byte [esp + 0x1bd]
movaps xmm1, xmmword [0x10040440]
xorps xmm0, xmm0
lea ecx, [esp + 0x128]
movaps xmmword [esp + 0xe0], xmm0
mov dword [ecx - 0x1c], 0
mov dword [ecx - 0x20], 0
mov dword [ecx - 0x14], 0
mov dword [ecx - 0x18], 0
movaps xmmword [esp + 0xf0], xmm1
mov dword [esp + 0x104], 0
mov dword [esp + 0x100], 0
mov byte [esp + 0x118], al
mov dword [esp + 0x119], 0
jmp 0x10026a45
mov dword [esp + 0x114], 0
mov dword [esp + 0x110], 0
mov byte [esp + 0x119], 0
mov word [esp + 0x11b], 0
mov ecx, dword [esp + 0x124]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x30], edi
test ecx, ecx
je 0x10027b8e
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0xdc], 0
mov dword [esp + 0x1d4], 0
mov dword [esp + 0x1e0], 0
mov dword [esp + 0x1e4], 0
mov dword [esp + 0x1e8], 0
mov dword [esp + 0x1d8], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0x1dc], 0
mov edx, dword [esp + 0x120]
lea edi, [ecx - 1]
lea eax, [edx + 1]
mov dword [esp + 0x14], edx
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edi
mov dword [esp + 0xc], eax
movzx eax, byte [edx]
test eax, eax
je 0x10026bb0
cmp al, byte [esp + 0x1b8]
mov esi, ebx
mov ebx, eax
mov dword [esp + 0x10], 0
jae 0x10026c50
dec eax
mov byte [esp + 0x28], bl
cmp eax, 0xb
ja 0x10026faf
mov eax, dword [eax*4 + 0x1002939c]
mov dword [esp + 4], 0x2f
mov ebx, esi
add eax, dword [esp + 0x38]
jmp eax
test edi, edi
je 0x10028093
lea eax, [ecx - 1]
mov dword [esp + 0x20], ecx
xor edi, edi
xor ebx, ebx
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x28], eax
lea eax, [edx + 4]
mov dword [esp + 0xc], eax
nop word cs:[eax + eax]
nop dword [eax]
movzx eax, byte [edx + edi + 1]
cmp ecx, 0x3f
jne 0x10026bf2
cmp al, 2
jae 0x1002807f
mov edx, eax
mov dword [esp + 4], edi
xor edi, edi
mov byte [esp + 0x10], al
mov eax, ebx
mov ebx, 0
and dl, 0x7f
movzx edx, dl
shld edi, edx, cl
shl edx, cl
test cl, 0x20
cmovne edi, edx
cmovne edx, ebx
mov ebx, eax
movzx eax, byte [esp + 0x10]
or esi, edi
or ebx, edx
test al, al
jns 0x10026c63
mov edi, dword [esp + 4]
add ecx, 7
inc dword [esp + 0xc]
mov edx, dword [esp + 0x14]
inc edi
cmp dword [esp + 0x28], edi
jne 0x10026be0
jmp 0x1002808b
mov byte [esp + 0x18], bl
mov dword [esp + 4], 0x2e
mov ebx, esi
jmp 0x10027580
mov edi, dword [esp + 4]
test esi, esi
jne 0x10028b6b
mov ecx, dword [esp + 0x20]
mov eax, ecx
sub eax, edi
add eax, 0xfffffffe
cmp eax, ebx
jb 0x10028b77
mov edx, dword [esp + 0x14]
sub ecx, ebx
mov esi, 0
sub ecx, edi
add ecx, 0xfffffffe
test ebx, ebx
lea eax, [edx + ebx]
lea eax, [edi + eax + 2]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], ecx
je 0x10028d89
lea esi, [edx + edi + 3]
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ebx
dec ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c0], esi
movzx eax, byte [edx + edi + 2]
lea ecx, [eax - 1]
cmp ecx, 3
ja 0x10027121
mov eax, dword [ecx*4 + 0x100293cc]
mov ecx, dword [esp + 0x6c]
mov edi, 0x3e
add eax, dword [esp + 0x38]
jmp eax
movzx edx, byte [esp + 0x28]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x134]
mov eax, dword [esp + 0x130]
dec dl
movzx edx, dl
cmp ecx, edx
jb 0x10028ed9
add eax, edx
cmp ecx, edx
je 0x10028ed9
movzx eax, byte [eax]
test eax, eax
je 0x10027359
cmp eax, 1
jne 0x10027371
test edi, edi
je 0x10028142
mov edx, 2
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], 0
xor ebx, ebx
xor ecx, ecx
sub edx, dword [esp + 0x20]
lea esi, [eax + 2]
movzx eax, byte [esi - 1]
cmp ecx, 0x3f
jne 0x10027026
cmp al, 2
jae 0x10028e4a
mov byte [esp + 4], al
xor edi, edi
mov dword [esp + 8], ebx
mov ebx, 0
movzx eax, byte [esp + 4]
and al, 0x7f
movzx eax, al
shld edi, eax, cl
shl eax, cl
test cl, 0x20
cmovne edi, eax
cmovne eax, ebx
mov ebx, dword [esp + 8]
or dword [esp + 0x40], eax
or ebx, edi
cmp byte [esp + 4], 0
jns 0x10027b2b
inc edx
add ecx, 7
inc esi
cmp edx, 1
jne 0x10027015
jmp 0x10028e62
mov esi, dword [esp + 0x24]
lea ecx, [edx + edi + 3]
movzx eax, al
mov edi, 0x42
mov edx, ecx
mov dword [esp + 0x40], ecx
mov byte [esp + 0x18], cl
shr edx, 0x10
mov dword [esp + 0x2c], edx
and esi, 0xffffff00
or esi, eax
mov eax, ecx
mov dword [esp + 0x24], esi
jmp 0x10027181
mov ecx, dword [esp + 0x6c]
mov dword [esp + 8], ebx
jmp 0x10027567
movzx eax, byte [esp + 0x28]
mov ebx, esi
mov dword [esp + 4], 0x3b
mov byte [esp + 0x18], al
jmp 0x10027580
mov ecx, dword [esp + 0xc]
neg dword [esp + 0x14]
mov dword [esp + 0x218], eax
mov dword [esp + 0x1cc], 0
mov dword [esp + 0xd0], ecx
mov ecx, edi
test ecx, ecx
je 0x10029092
mov dword [esp + 0x220], ecx
neg ecx
mov edx, dword [esp + 0x14]
xor esi, esi
mov dword [esp + 0x1d0], ecx
mov ecx, dword [esp + 0xd0]
lea ebx, [edx + ecx]
lea eax, [ecx + 1]
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x10], eax
movzx eax, byte [eax - 1]
cmp ecx, 0x3f
jne 0x100273d8
cmp al, 2
jae 0x10028b8a
mov byte [esp + 4], al
mov dword [esp + 0x20], ebx
xor ebx, ebx
mov dword [esp + 0x18], esi
mov esi, edx
mov edx, 0
movzx eax, byte [esp + 4]
and al, 0x7f
movzx eax, al
shld ebx, eax, cl
shl eax, cl
test cl, 0x20
cmovne ebx, eax
cmovne eax, edx
mov edx, esi
mov esi, dword [esp + 0x18]
or edx, eax
or esi, ebx
cmp byte [esp + 4], 0
jns 0x10027431
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
add ecx, 7
inc eax
inc ebx
inc dword [esp + 0x1d0]
jne 0x100273c3
jmp 0x10028d9b
mov eax, dword [esp + 0x1cc]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1d0]
mov dword [esp + 0x1c8], edx
mov dword [esp + 0xdc], esi
inc eax
mov dword [esp + 0x120], ebx
mov dword [esp + 0xd0], ebx
mov ebx, dword [esp + 0x1c]
not ecx
mov dword [esp + 0x1cc], eax
cmp eax, dword [esp + 0x218]
movzx eax, byte [esp + 0x28]
mov dword [esp + 0x124], ecx
jne 0x10027394
mov ecx, eax
mov eax, dword [esp + 0x20]
cmp edi, eax
jb 0x10028eeb
mov edi, eax
movzx eax, cl
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c8], edx
mov dword [esp + 0xdc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 4], 0x3d
mov dword [esp + 8], edi
and ecx, 0xffffff00
or ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0xc]
mov eax, ecx
mov byte [esp + 0x18], cl
shr eax, 0x10
mov dword [esp + 0x2c], eax
mov eax, ecx
mov ah, ch
mov dword [esp + 0x40], eax
jmp 0x10027580
mov ebx, dword [esp + 0x1c]
mov dword [esp + 4], edi
mov dword [esp + 0x6c], ecx
nop word cs:[eax + eax]
nop dword [eax]
movsd xmm1, qword [esp + 0x200]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x10]
movsd xmm0, qword [esp + 0x208]
movsd xmm2, qword [esp + 0x1f0]
movsd qword [esp + 0x248], xmm1
movsd xmm1, qword [esp + 0x1f8]
shl esi, 0x10
cmp edi, 0x2e
movsd qword [esp + 0x250], xmm0
movsd qword [esp + 0x238], xmm2
sbb eax, 0
movsd qword [esp + 0x240], xmm1
jb 0x10027650
lea eax, [edi - 0x2e]
lea ecx, [esp + 0xe0]
mov edx, dword [eax*4 + 0x100293fc]
lea eax, [esp + 0x128]
add edx, dword [esp + 0x38]
jmp edx
mov edx, dword [esp + 0x1b0]
cmp edx, dword [esp + 0x1a8]
jne 0x10027673
lea ecx, [esp + 0x1a8]
call fcn.10029eb0
mov edx, dword [esp + 0x1b0]
mov eax, dword [esp + 0x40]
movzx ecx, byte [esp + 0x18]
movzx eax, ah
shl eax, 8
or ecx, eax
movzx eax, cx
imul ecx, edx, 0x38
inc edx
or esi, eax
mov eax, dword [esp + 0x1ac]
mov dword [eax + ecx], esi
mov esi, dword [esp + 8]
mov dword [eax + ecx + 4], esi
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx + 0xc], esi
mov esi, dword [esp + 0x24]
mov dword [eax + ecx + 8], esi
mov esi, dword [esp + 0x10]
mov dword [eax + ecx + 0x10], edi
mov dword [eax + ecx + 0x14], esi
movsd xmm0, qword [esp + 0x238]
movsd xmm1, qword [esp + 0x240]
movsd qword [eax + ecx + 0x18], xmm0
movsd qword [eax + ecx + 0x20], xmm1
movsd xmm0, qword [esp + 0x248]
movsd qword [eax + ecx + 0x28], xmm0
movsd xmm0, qword [esp + 0x250]
movsd qword [eax + ecx + 0x30], xmm0
mov dword [esp + 0x1b0], edx
mov ecx, dword [esp + 0x124]
test ecx, ecx
jne 0x10026abc
jmp 0x10027b8e
mov ecx, dword [esp + 0x40]
neg edx
mov dword [esp + 0x120], esi
mov dword [esp + 8], ebx
mov dword [esp + 0x1d4], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x10], 0
mov dword [esp + 4], 0x3c
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0x24]
mov eax, ecx
mov byte [esp + 0x18], cl
mov dword [esp + 0x214], ecx
shr eax, 0x10
and edx, 0xffffff00
mov dword [esp + 0x2c], eax
movzx eax, byte [esp + 0x28]
or edx, eax
mov eax, ecx
mov dword [esp + 0x24], edx
jmp 0x10027580
mov ecx, dword [esp + 0x34]
xor eax, eax
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
test eax, eax
je 0x10028338
mov eax, dword [esp + 0x34]
cmp byte [eax + 0x3a], 0
je 0x10027c6b
mov eax, dword [esp + 0x68]
test eax, eax
je 0x10027d55
mov ecx, dword [edi]
mov dword [esp + 4], ecx
mov ecx, dword [edi + 4]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 8
mov dword [esp + 0x88], 0
mov dword [esp + 0xc], ecx
cmp edx, eax
jbe 0x10027d68
lea eax, [eax*8]
mov dword [esp + 0x28], edx
lea ebx, [eax + eax*2]
push ebx
push edi
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapReAlloc
mov edx, dword [esp + 0x7c]
mov esi, eax
test eax, eax
je 0x100291d8
cmp edx, dword [esp + 0x8c]
jne 0x10027d7b
mov edi, dword [esp + 0x68]
lea ecx, [esp + 0x8c]
call fcn.100210f0
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
jmp 0x10027d83
mov ecx, dword [eax + 0x14]
mov ebx, dword [eax]
mov esi, dword [eax + 4]
mov edx, eax
mov dword [esp + 4], ecx
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x64]
sub eax, 1
mov dword [esp + 0x10], ecx
mov ecx, 0
lea eax, [eax + eax*2]
lea eax, [edi + eax*8]
cmovb eax, ecx
mov ecx, dword [edx + 0x18]
mov edx, dword [edx + 0x20]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
jb 0x10027ce7
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov edi, dword [esp + 0x30]
xor ecx, ebx
xor edx, esi
or edx, ecx
jne 0x10027ce7
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x64]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 4]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x60]
movzx eax, byte [esp + 0x11a]
jmp 0x100269a2
mov edx, dword [esp + 0x64]
cmp edx, dword [esp + 0x80]
jne 0x10027d0e
lea ecx, [esp + 0x80]
call fcn.100210f0
mov edi, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 4]
lea eax, [edx + edx*2]
inc edx
mov dword [edi + eax*8 + 4], esi
mov dword [edi + eax*8], ebx
mov dword [esp + 0x64], edx
mov dword [edi + eax*8 + 0xc], ecx
mov ecx, dword [esp + 0x10]
mov dword [edi + eax*8 + 8], ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + eax*8 + 0x10], ecx
mov ecx, dword [esp + 0x14]
mov dword [edi + eax*8 + 0x14], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x88], edx
movzx eax, byte [esp + 0x11a]
jmp 0x100269a2
mov ecx, dword [esp + 0x60]
movzx eax, byte [esp + 0x11a]
xor edx, edx
jmp 0x100269a2
mov edx, dword [esp + 0x7c]
mov esi, edi
cmp edx, dword [esp + 0x8c]
je 0x10027c48
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x14]
lea eax, [edx + edx*2]
inc edx
mov dword [esp + 0x64], 0
mov dword [esp + 0x7c], edx
mov dword [ecx + eax*8 + 4], ebx
mov ebx, dword [esp + 4]
mov dword [ecx + eax*8], ebx
mov ebx, dword [esp + 0xc]
mov dword [ecx + eax*8 + 0xc], ebx
mov ebx, dword [esp + 0x10]
mov dword [ecx + eax*8 + 8], ebx
mov dword [ecx + eax*8 + 0x10], esi
mov dword [ecx + eax*8 + 0x14], edi
mov dword [esp + 0x94], edx
mov edi, 8
xor edx, edx
movzx eax, byte [esp + 0x11a]
jmp 0x100269a2
mov edi, 6
xor esi, esi
jmp 0x1002814f
add edx, dword [esp + 0x20]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xc]
xor esi, esi
mov edi, 0x13
mov ah, al
jmp 0x1002814f
mov eax, ebx
test eax, eax
jne 0x10026585
mov ecx, edi
mov edx, ebx
call fcn.10002c00
jmp 0x1002923e
mov eax, ebx
test eax, eax
jne 0x1002660d
mov ecx, esi
mov edx, ebx
call fcn.10002c00
jmp 0x1002923e
mov eax, ebx
test eax, eax
jne 0x10026691
mov ecx, edi
mov edx, ebx
call fcn.10002c00
jmp 0x1002923e
mov edi, ebx
test edi, edi
jne 0x10026726
mov edx, ebx
call fcn.10002c00
jmp 0x1002923e
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 4]
jmp 0x10028142
mov edx, dword [esp + 0xc]
xor esi, esi
mov edi, 0x13
mov ah, al
mov dword [esp + 0x120], str.Index_out_of_bounds
mov cl, ah
mov dword [esp + 0x124], 0
mov dword [esp + 0x24], edx
mov dword [esp + 0x3c], esi
mov ebx, edi
movzx eax, word [esp + 0x2c]
movzx esi, cl
shl eax, 8
or esi, eax
cmp dword [esp + 0x184], 0
je 0x1002819c
push dword [esp + 0x188]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x190], 0
je 0x100281ba
push dword [esp + 0x194]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x19c], 0
je 0x100281d8
push dword [esp + 0x1a0]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x1a8], 0
mov dword [esp + 4], esi
je 0x100281fa
push dword [esp + 0x1ac]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x80], 0
mov dword [esp + 0x40], ebx
je 0x1002821c
push dword [esp + 0x84]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
test eax, eax
je 0x1002825f
shl eax, 3
lea edi, [esi + 0x14]
lea ebx, [eax + eax*2]
jmp 0x10028248
add edi, 0x18
add ebx, 0xffffffe8
je 0x1002825f
cmp dword [edi], 0
je 0x10028240
push dword [edi - 4]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
jmp 0x10028240
cmp dword [esp + 0x8c], 0
je 0x10028277
push esi
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 4]
mov eax, 1
movzx edx, byte [esp + 0x40]
mov ecx, dword [esp + 8]
shl edi, 8
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], esi
or edx, edi
mov dword [esp + 0xe8], edx
mov dword [esp + 0xec], ecx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xf0], edx
mov dword [esp + 0xf4], ecx
cmp dword [ebx], 2
jne 0x100282f4
movsd xmm0, qword [esp + 0xe0]
movsd xmm1, qword [esp + 0xe8]
movsd qword [ebx], xmm0
movsd xmm0, qword [esp + 0xf0]
movsd qword [ebx + 8], xmm1
movsd qword [ebx + 0x10], xmm0
jmp 0x10028300
lea ecx, [esp + 0xe0]
call fcn.1002a640
mov eax, dword [ebx]
mov ecx, dword [esp + 0x1ec]
xor edx, edx
test eax, eax
setne dl
lea eax, [ebx + edx*4 + 4]
je 0x1002832a
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
jmp 0x10028330
mov dword [ecx + 4], eax
mov byte [ecx], 0x4b
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x90]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x94]
cmp eax, 0x15
jae 0x100283fe
cmp eax, 2
jb 0x10028a8d
mov ecx, dword [esp + 0x18]
mov edx, eax
push 1
call fcn.10029fd0
add esp, 4
jmp 0x10028a8d
mov dword [esp + 0x38], eax
shr eax, 1
mov dword [esp + 0x64], eax
lea eax, [eax*8]
lea ecx, [eax + eax*2]
mov edx, 8
call fcn.10002820
test eax, eax
mov dword [esp + 4], eax
je 0x10029213
mov ecx, pe_nt_image_headers32
mov edx, 4
call fcn.10002820
test eax, eax
mov dword [esp + 0x28], eax
je 0x10029227
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x60], 0x10
mov dword [esp + 0x40], 0
lea ecx, [eax + 0x30]
add eax, 0xffffffe8
mov dword [esp + 0x68], eax
xor eax, eax
mov dword [esp + 0x20], ecx
jmp 0x10028481
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
cmp eax, esi
jae 0x10028a67
mov edx, dword [esp + 0x18]
mov ecx, eax
lea eax, [eax + eax*2]
lea edi, [edx + eax*8]
mov edx, ecx
mov ecx, esi
sub ecx, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], edi
cmp ecx, 2
mov dword [esp + 0x10], ecx
jae 0x1002857d
mov eax, dword [esp + 0x10]
mov ecx, esi
mov edi, ecx
sub edi, edx
jb 0x1002919c
cmp ecx, esi
ja 0x1002919c
jae 0x100285cc
cmp eax, 0xa
jae 0x100285cc
lea edi, [edx + 0xa]
cmp edi, esi
cmovae edi, esi
mov dword [esp + 0x34], edi
sub edi, edx
jb 0x100291d1
cmp eax, 2
mov esi, eax
mov eax, 1
cmovb esi, eax
mov ecx, dword [esp + 0xc]
mov edx, edi
push esi
call fcn.10029fd0
add esp, 4
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
cmp esi, dword [esp + 0x60]
jne 0x100285de
lea eax, [esi + esi]
mov dword [esp + 0x60], eax
mov eax, dword [0x1036e078]
test eax, eax
jne 0x10028533
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x100291b8
mov dword [0x1036e078], eax
mov ecx, esi
shl ecx, 4
push ecx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x100291b8
lea ecx, [esi*8]
push ecx
push dword [esp + 0x2c]
push eax
mov dword [esp + 0x1c], eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
push dword [esp + 0x28]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x100285e2
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x1c]
mov edx, dword [edi + 0x18]
mov ecx, dword [edi + 4]
mov dword [esp + 8], eax
mov eax, dword [edi]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], eax
cmp edx, eax
mov eax, dword [esp + 8]
sbb eax, dword [esp + 0x2c]
jae 0x100288d8
cmp dword [esp + 0x10], 2
mov eax, dword [esp + 0x3c]
jne 0x100288f4
mov edx, dword [esp + 0x14]
mov eax, 2
lea ecx, [edx + 2]
jmp 0x1002897d
mov esi, dword [esp + 0x40]
mov dword [esp + 0x34], ecx
cmp esi, dword [esp + 0x60]
je 0x10028511
mov eax, dword [esp + 0x28]
mov dword [eax + esi*8], edi
mov dword [eax + esi*8 + 4], edx
inc esi
mov dword [esp + 0x28], eax
cmp esi, 2
jb 0x1002846d
mov edx, eax
jmp 0x1002865f
mov ebx, esi
mov eax, dword [esp + 4]
sub edi, eax
push edi
push eax
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x3c]
add ecx, dword [esp + 0x14]
mov dword [esi + eax*8 + 8], ecx
mov ecx, dword [esp + 0x24]
mov dword [esi + eax*8 + 0xc], ecx
mov ecx, dword [esp + 0x10]
not eax
add ecx, eax
lea eax, [edx + 8]
shl ecx, 3
push ecx
push eax
push edx
call sub.msvcrt.dll_memmove
mov edx, esi
add esp, 0xc
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x1c]
cmp esi, 1
jbe 0x100288c7
mov eax, dword [edx + esi*8 - 8]
mov ecx, dword [edx + esi*8 - 4]
mov ebx, esi
mov esi, dword [esp + 0x38]
mov edi, edx
mov dword [esp + 0x10], ebx
add ecx, eax
cmp ecx, esi
je 0x100286c0
mov ecx, dword [edx + ebx*8 - 0x10]
cmp ecx, eax
jbe 0x100286c0
cmp ebx, 3
jb 0x10028a3a
lea esi, [ebx - 3]
mov dword [esp + 0xc], esi
mov esi, ecx
mov ecx, edx
mov ecx, dword [edx + ebx*8 - 0x18]
mov edx, esi
add esi, eax
cmp ecx, esi
jbe 0x100286d4
cmp ebx, 4
jb 0x10028a44
add edx, ecx
cmp dword [edi + ebx*8 - 0x20], edx
mov ebx, dword [esp + 0xc]
jbe 0x100286e0
jmp 0x10028a52
cmp ebx, 3
mov ecx, ebx
jb 0x100286ee
mov esi, ecx
lea ebx, [ecx - 3]
mov ecx, edx
mov ecx, dword [edx + esi*8 - 0x18]
jmp 0x100286e0
mov ebx, dword [esp + 0xc]
nop dword [eax + eax]
cmp ecx, eax
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
mov edx, edi
jb 0x100286f1
lea ebx, [ecx - 2]
cmp ecx, ebx
jbe 0x100290cb
lea eax, [ebx + 1]
cmp ecx, eax
jbe 0x100290f3
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8 + 8]
mov edx, dword [edx + ebx*8 + 0xc]
add edx, eax
mov edi, edx
sub edi, ecx
mov dword [esp + 8], edi
jb 0x10029138
cmp edx, esi
mov dword [esp + 0x2c], eax
ja 0x1002914a
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
mov dword [esp + 0xc], ebx
mov edi, dword [eax + ebx*8]
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x18]
lea ebx, [ecx + eax*8]
lea eax, [edi + edi*2]
mov ecx, dword [esp + 8]
mov dword [esp + 0x14], edi
lea esi, [ebx + eax*8]
lea eax, [edx + edx*2]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x10]
sub ecx, edi
cmp ecx, edi
lea eax, [eax - 1]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x28]
lea eax, [eax + edx*8]
mov dword [esp + 0x3c], eax
jae 0x10028820
lea eax, [ecx*8]
mov dword [esp + 8], ecx
lea edi, [eax + eax*2]
push edi
push esi
push dword [esp + 0xc]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x14]
add edi, dword [esp + 4]
test eax, eax
jle 0x10028600
cmp dword [esp + 8], 0
jle 0x10028600
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x30]
lea eax, [eax + ecx*8]
mov ecx, dword [edi - 0x18]
mov edx, dword [edi - 0x14]
cmp ecx, dword [esi - 0x18]
sbb edx, dword [esi - 0x14]
jb 0x100287e0
add edi, 0xffffffe8
mov ecx, edi
jmp 0x100287e5
add esi, 0xffffffe8
mov ecx, esi
movsd xmm1, qword [ecx + 8]
movsd xmm0, qword [ecx]
cmp esi, ebx
movsd qword [eax + 8], xmm1
movsd xmm1, qword [ecx + 0x10]
movsd qword [eax], xmm0
movsd qword [eax + 0x10], xmm1
jbe 0x10028600
add eax, 0xffffffe8
cmp edi, dword [esp + 4]
ja 0x100287c0
jmp 0x10028600
mov eax, dword [esp + 0x14]
lea eax, [eax*8]
lea edi, [eax + eax*2]
push edi
push ebx
push dword [esp + 0xc]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x14]
add edi, dword [esp + 4]
test eax, eax
jle 0x10028602
cmp dword [esp + 8], eax
jle 0x10028602
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
lea ecx, [eax + ecx*8]
mov eax, dword [esp + 4]
nop word cs:[eax + eax]
nop
mov edx, eax
mov eax, dword [esi]
cmp eax, dword [edx]
mov eax, dword [esi + 4]
sbb eax, dword [edx + 4]
setae al
movzx eax, al
lea eax, [eax + eax*2]
lea eax, [edx + eax*8]
cmovb edx, esi
movsd xmm1, qword [edx + 8]
movsd xmm0, qword [edx]
movsd qword [ebx + 8], xmm1
movsd xmm1, qword [edx + 0x10]
setb dl
movsd qword [ebx], xmm0
cmp eax, edi
movsd qword [ebx + 0x10], xmm1
lea ebx, [ebx + 0x18]
jae 0x10028606
movzx edx, dl
lea edx, [edx + edx*2]
lea esi, [esi + edx*8]
cmp esi, ecx
jb 0x10028870
jmp 0x10028606
mov esi, dword [esp + 0x38]
mov dword [esp + 0x40], 1
jmp 0x10028475
cmp dword [esp + 0x10], 2
mov eax, dword [esp + 0x3c]
jne 0x10028925
mov edx, dword [esp + 0x14]
mov eax, 2
lea ecx, [edx + 2]
jmp 0x100284ae
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 8]
lea edi, [ecx + eax*8]
mov eax, 2
mov ebx, edx
mov ecx, esi
mov esi, dword [edi]
mov edx, dword [edi + 4]
cmp esi, ecx
mov ecx, edx
sbb ecx, ebx
jae 0x10028958
inc eax
add edi, 0x18
cmp dword [esp + 0x10], eax
jne 0x10028908
jmp 0x10028954
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 8]
lea edi, [ecx + eax*8]
mov eax, 2
mov ecx, edx
mov ebx, esi
mov esi, dword [edi]
mov edx, dword [edi + 4]
cmp esi, ebx
mov ebx, edx
sbb ebx, ecx
jb 0x10028958
inc eax
add edi, 0x18
cmp dword [esp + 0x10], eax
jne 0x10028939
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x24], esi
mov esi, dword [esp + 0x2c]
lea ecx, [eax + edx]
sbb dword [esp + 8], esi
mov esi, dword [esp + 0x38]
jae 0x100284ae
cmp ecx, edx
jb 0x100291f7
cmp ecx, esi
ja 0x100291e6
cmp eax, 2
jb 0x100284ae
mov dword [esp + 0x34], ecx
mov ecx, eax
mov esi, dword [esp + 0xc]
shr eax, 1
mov edi, ecx
add ecx, edx
mov edx, dword [esp + 0x68]
lea ecx, [ecx + ecx*2]
lea edx, [edx + ecx*8]
movsd xmm0, qword [esi + 0x10]
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0xa0], xmm1
movsd qword [esp + 0x98], xmm0
movsd xmm0, qword [edx + 0x10]
movsd qword [esi + 0x10], xmm0
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
add esi, 0x18
movsd xmm0, qword [esp + 0xa8]
movsd qword [edx + 0x10], xmm0
movsd xmm0, qword [esp + 0x98]
movsd xmm1, qword [esp + 0xa0]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
add edx, 0xffffffe8
dec eax
jne 0x100289b0
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
mov eax, edi
jmp 0x100284ae
mov dword [esp + 0x40], 2
jmp 0x10028a5e
mov esi, dword [esp + 0x38]
mov dword [esp + 0x40], 3
jmp 0x10028a5e
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x40], eax
mov ebx, dword [esp + 0x1c]
jmp 0x10028475
push dword [esp + 0x28]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
push dword [esp + 4]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 4
mov dword [esp + 0x78], 0
cmp word [ebx + 0x12e], 5
jae 0x10028acc
mov eax, dword [ebx + 0xc8]
xor eax, 0x2e
or eax, dword [ebx + 0xcc]
je 0x10028ba2
lea eax, [ebx + 0xb8]
jmp 0x10028adf
cmp dword [ebx + 0x128], 0
je 0x10028ba2
mov eax, dword [ebx + 0x124]
mov edx, ebx
lea ecx, [esp + 0x98]
push dword [ebp + 8]
push dword [esp + 0xdc]
push eax
call fcn.1002a110
add esp, 0xc
movzx ebx, byte [esp + 0x98]
cmp bl, 0x4b
jne 0x10028e76
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x238], esi
mov dword [esp + 0x23c], edi
mov dword [esp + 0x240], ebx
lea ecx, [esp + 0x70]
xor edx, edx
call fcn.1002a4b0
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
lea eax, [edx + edx*2]
inc edx
mov dword [ecx + eax*4], esi
mov dword [ecx + eax*4 + 4], edi
mov dword [ecx + eax*4 + 8], ebx
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x5c]
mov edi, ecx
mov dword [esp + 0x14], edx
jmp 0x10028bf7
mov edi, 0x35
mov edx, ebx
jmp 0x1002814f
mov eax, dword [esp + 0x14]
xor esi, esi
lea edx, [eax + edi + 2]
mov dword [esp + 8], edx
jmp 0x10028d8d
mov edx, dword [esp + 0x1c8]
mov esi, dword [esp + 0xdc]
mov edi, 6
jmp 0x1002814f
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 1
mov dword [esp + 0xa0], 0
lea ecx, [esp + 0x70]
xor edx, edx
call fcn.1002a4b0
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x74]
mov ecx, dword [esp + 0xa0]
lea eax, [edx + edx*2]
inc edx
mov dword [edi + eax*4 + 8], ecx
mov dword [esp + 0x14], edx
movsd xmm0, qword [esp + 0x98]
movsd qword [edi + eax*4], xmm0
mov dword [esp + 0x78], edx
lea eax, [ebx + 0xb8]
mov dword [esp + 0xc], 0
mov dword [esp + 0x28], eax
mov eax, 1
jmp 0x10028c45
mov ecx, dword [esp + 0x10]
lea eax, [edx + edx*2]
inc edx
mov dword [ecx + eax*4], ebx
mov dword [ecx + eax*4 + 4], edi
mov dword [ecx + eax*4 + 8], esi
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x78], edx
mov edi, ecx
add eax, 1
adc dword [esp + 0xc], 0
cmp word [ebx + 0x12e], 5
mov dword [esp + 4], eax
jae 0x10028c73
mov ecx, eax
or eax, dword [esp + 0xc]
je 0x10028d09
lea eax, [ecx - 1]
cmp eax, dword [ebx + 0x128]
jae 0x10028d1b
imul eax, eax, 0x38
jmp 0x10028c84
cmp dword [ebx + 0x128], eax
jbe 0x10028d1b
imul eax, dword [esp + 4], 0x38
add eax, dword [ebx + 0x124]
mov edx, ebx
lea ecx, [esp + 0x98]
push dword [ebp + 8]
push dword [esp + 0xdc]
push eax
call fcn.1002a110
add esp, 0xc
movzx ebx, byte [esp + 0x98]
mov dword [esp + 0x10], edi
cmp bl, 0x4b
jne 0x10028dba
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x9c]
mov edi, dword [esp + 0xa0]
mov esi, dword [esp + 0xa4]
cmp edx, dword [esp + 0x70]
mov dword [esp + 0x1f0], ebx
mov dword [esp + 0x1f4], edi
mov dword [esp + 0x1f8], esi
jne 0x10028c14
lea ecx, [esp + 0x70]
call fcn.1002a4b0
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
jmp 0x10028c18
mov eax, dword [esi]
xor eax, 0x2e
or eax, dword [esi + 4]
mov eax, dword [esp + 0x28]
jne 0x10028c8a
mov eax, dword [esp + 0x78]
movsd xmm0, qword [esp + 0x70]
movsd qword [esp + 0x98], xmm0
mov dword [esp + 0xa0], eax
mov dword [esp + 0x40], eax
mov esi, dword [esp + 0x9c]
cmp dword [esp + 0x98], eax
jbe 0x10028f52
test eax, eax
je 0x10028f3f
lea eax, [eax*4]
lea edi, [eax + eax*2]
push edi
push esi
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapReAlloc
mov esi, eax
test eax, eax
jne 0x10028f52
mov ecx, edi
mov edx, 4
call fcn.10002c00
jmp 0x1002923e
lea edx, [edx + edi + 2]
mov eax, dword [esp + 0x40]
mov edi, 0x13
jmp 0x1002814f
mov edx, dword [esp + 0xd0]
movzx eax, byte [esp + 4]
add edx, dword [esp + 0x220]
mov dword [esp + 0x120], edx
jmp 0x10028146
movzx eax, byte [esp + 0x9b]
movzx esi, word [esp + 0x99]
shl eax, 0x10
or esi, eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10028ebb
shl eax, 2
mov dword [esp + 4], esi
xor edi, edi
lea esi, [eax + eax*2]
jmp 0x10028e15
add edi, 0xc
cmp esi, edi
je 0x10028eb3
mov eax, dword [esp + 0x10]
cmp dword [eax + edi], 0
je 0x10028e0a
push dword [eax + edi + 4]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
jmp 0x10028e0a
mov edx, dword [esp + 0x214]
mov esi, dword [esp + 0x1d4]
mov edi, 6
jmp 0x1002814f
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x20]
mov dword [esp + 0x120], eax
jmp 0x1002811d
mov ecx, dword [esp + 0x9c]
movzx eax, byte [esp + 0x9b]
mov edx, dword [esp + 0xa0]
movzx esi, word [esp + 0x99]
mov edi, 4
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xa4]
shl eax, 0x10
mov dword [esp + 0x24], edx
or esi, eax
mov dword [esp + 0x3c], ecx
jmp 0x10028ebb
mov esi, dword [esp + 4]
mov edi, dword [esp + 0x10]
cmp dword [esp + 0x70], 0
je 0x1002817e
push edi
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
jmp 0x1002817e
mov edx, eax
mov eax, dword [esp + 0x40]
xor esi, esi
mov edi, 0x13
jmp 0x1002814f
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x40]
xor esi, esi
mov edi, 0x13
jmp 0x1002814f
push esi
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
mov esi, 4
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1c0], esi
movsd xmm0, qword [esp + 0x8c]
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x94]
movsd qword [esp + 0x98], xmm0
mov dword [esp + 0xa0], eax
cmp dword [esp + 0x98], eax
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x9c]
mov dword [esp + 8], ecx
jbe 0x10028fee
test eax, eax
je 0x10028fd5
lea eax, [eax*8]
lea edi, [eax + eax*2]
push edi
push dword [esp + 0xc]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
mov dword [esp + 8], eax
jne 0x10028fee
mov ecx, edi
mov edx, 8
call fcn.10002c00
jmp 0x1002923e
push dword [esp + 8]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
mov dword [esp + 8], 8
cmp dword [esp + 0x184], 0
je 0x1002900c
push dword [esp + 0x188]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x190], 0
je 0x1002902a
push dword [esp + 0x194]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x19c], 0
je 0x10029048
push dword [esp + 0x1a0]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x1a8], 0
je 0x10029066
push dword [esp + 0x1ac]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
mov edi, dword [esp + 0x40]
shr edi, 8
cmp dword [esp + 0x80], 0
je 0x1002908b
push dword [esp + 0x84]
push 0
push dword [0x1036e078]
call sub.KERNEL32.dll_HeapFree
xor eax, eax
jmp 0x10028284
mov edx, dword [esp + 0xd0]
jmp 0x10028146
mov edx, esi
push eax
call fcn.10003da0
add esp, 4
jmp 0x1002923e
mov dword [esp + 0xa0], str.Index_out_of_bounds
mov dword [esp + 0xa4], 1
mov dword [esp + 0x98], 0
mov edx, 0x10366848
jmp 0x10029119
mov edx, 0x10366858
mov dword [esp + 0xa0], 0x103666d4
mov dword [esp + 0xa4], 1
mov dword [esp + 0x98], 0
mov ecx, dword [esp + 0x234]
mov dword [ecx + 0x10], str.Index_out_of_bounds
mov dword [ecx + 0x14], 0
call fcn.100032d0
jmp 0x1002923e
push 0x10366868
call fcn.10004170
add esp, 4
jmp 0x1002923e
mov ecx, edx
mov edx, esi
push 0x10366868
call fcn.10003a80
add esp, 4
jmp 0x1002923e
call fcn.10002bc0
jmp 0x1002923e
call fcn.10002bc0
jmp 0x1002923e
call fcn.10002bc0
jmp 0x1002923e
call fcn.10002bc0
jmp 0x1002923e
mov edx, 0x2c
mov ecx, str.assertion_failed:_end___start__end___len
push 0x10366910
call fcn.10003da0
add esp, 4
jmp 0x1002923e
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value
push 0x103668c4
call fcn.10003da0
add esp, 4
jmp 0x1002923e
mov eax, 0x10366920
jmp 0x10029200
mov ecx, ebx
mov edx, 8
call fcn.10002c00
jmp 0x1002923e
mov edx, esi
push 0x10366838
call fcn.10003a80
add esp, 4
jmp 0x1002923e
mov eax, 0x10366838
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
push eax
call fcn.10004170
add esp, 4
jmp 0x1002923e
mov eax, 0x103668a4
mov esi, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value
jmp 0x100290bb
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value
push 0x103668b4
call fcn.10003da0
add esp, 4
ud2