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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x140
mov esi, dword [ebp + 8]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], edx
cmp dword [esi + 0xc], 1
jne 0x10060615
mov esi, dword [esp + 0x28]
mov ecx, edx
mov eax, dword [esi + 0x20]
mov ebx, dword [esi + 0x24]
mov edx, dword [esi + 0x28]
mov esi, dword [esi + 0x2c]
mov edi, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], esi
xor eax, 0x6e657261
xor edi, 0x70736575
mov dword [esp + 0x58], edi
mov edi, ebx
xor ebx, 0x6c796765
xor edi, 0x736f6d65
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], eax
mov eax, edx
mov dword [esp + 0x64], ebx
xor edx, 0x79746573
xor eax, 0x6e646f6d
mov dword [esp + 0x68], eax
mov eax, esi
xor esi, 0x74656462
xor eax, 0x646f7261
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], edx
lea edx, [esp + 0x48]
mov dword [esp + 0x74], esi
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
call fcn.10062430
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x5c]
shl edx, 0x18
xor esi, edi
mov dword [esp + 0x120], edi
mov edi, eax
or edx, dword [esp + 0x7c]
mov dword [esp + 0x1c], edx
xor ecx, edx
mov edx, dword [esp + 0x58]
add edx, eax
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x6c]
adc ebx, edx
shld edi, edx, 0xd
shld edx, eax, 0xd
mov eax, dword [esp + 0x60]
mov dword [esp + 0xc], ebx
xor edx, ebx
mov ebx, dword [esp + 0x14]
xor edi, ebx
add eax, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
adc eax, ecx
mov dword [esp + 0xb0], eax
mov eax, esi
shrd esi, ecx, 0x10
shld eax, ecx, 0x10
xor esi, dword [esp + 0xb0]
xor eax, dword [esp + 0x10]
add dword [esp + 0xc], eax
mov ecx, eax
adc ebx, esi
shld ecx, esi, 0x15
shrd eax, esi, 0xb
mov esi, edi
xor eax, ebx
xor ecx, dword [esp + 0xc]
add dword [esp + 0x10], edi
adc dword [esp + 0xb0], edx
shld esi, edx, 0x11
shrd edi, edx, 0xf
mov edx, ebx
mov ebx, dword [esp + 0x120]
xor esi, dword [esp + 0x10]
xor edx, dword [esp + 0x1c]
mov dword [esp + 0x1c], 0x10
xor dword [esp + 0xc], ebx
mov ebx, dword [esp + 0xb0]
xor edi, ebx
xor ebx, 0xff
add dword [esp + 0xc], esi
adc edx, edi
mov dword [esp + 0x14], edx
mov edx, esi
shrd esi, edi, 0x13
shld edx, edi, 0xd
xor esi, dword [esp + 0x14]
mov edi, ecx
xor edx, dword [esp + 0xc]
add ebx, ecx
adc dword [esp + 0x10], eax
shld edi, eax, 0x10
shrd ecx, eax, 0x10
xor edi, ebx
xor ecx, dword [esp + 0x10]
add dword [esp + 0x14], edi
mov eax, edi
adc dword [esp + 0xc], ecx
shld eax, ecx, 0x15
shrd edi, ecx, 0xb
mov ecx, edx
xor edi, dword [esp + 0xc]
xor eax, dword [esp + 0x14]
add ebx, edx
adc dword [esp + 0x10], esi
shld ecx, esi, 0x11
shrd edx, esi, 0xf
xor ecx, ebx
xor edx, dword [esp + 0x10]
add dword [esp + 0x14], ecx
mov esi, ecx
adc dword [esp + 0xc], edx
shld esi, edx, 0xd
shrd ecx, edx, 0x13
mov edx, eax
xor ecx, dword [esp + 0xc]
xor esi, dword [esp + 0x14]
add dword [esp + 0x10], eax
adc ebx, edi
shld edx, edi, 0x10
shrd eax, edi, 0x10
xor edx, dword [esp + 0x10]
xor eax, ebx
add dword [esp + 0xc], edx
mov edi, edx
adc dword [esp + 0x14], eax
shld edi, eax, 0x15
shrd edx, eax, 0xb
mov eax, esi
xor edx, dword [esp + 0x14]
xor edi, dword [esp + 0xc]
add dword [esp + 0x10], esi
adc ebx, ecx
shld eax, ecx, 0x11
shrd esi, ecx, 0xf
xor eax, dword [esp + 0x10]
xor esi, ebx
add dword [esp + 0xc], eax
mov ecx, eax
adc dword [esp + 0x14], esi
shld ecx, esi, 0xd
shrd eax, esi, 0x13
mov esi, edi
xor ecx, dword [esp + 0xc]
xor eax, dword [esp + 0x14]
add ebx, edi
adc dword [esp + 0x10], edx
shld esi, edx, 0x10
shrd edi, edx, 0x10
mov edx, dword [esp + 0x10]
xor esi, ebx
xor edi, edx
shld esi, edi, 0x15
add ebx, ecx
adc edx, eax
shrd eax, ecx, 0xf
mov ecx, dword [esp + 0x28]
xor eax, esi
xor eax, edx
xor eax, ebx
mov edi, dword [ecx + 0x30]
mov esi, dword [ecx + 0x34]
mov ecx, edi
mov dword [esp + 0xc], edi
and ecx, eax
shr eax, 0x19
movd xmm0, eax
movdqu xmm1, xmmword [esi + ecx]
lea edx, [ecx + 0x10]
mov dword [esp + 0x10], ecx
punpcklbw xmm0, xmm0
and edx, edi
pshuflw xmm0, xmm0, 0xe0
mov dword [esp + 0x14], edx
pshufd xmm0, xmm0, 0
movdqa xmmword [esp + 0x120], xmm0
pcmpeqb xmm0, xmm1
movdqa xmmword [esp + 0xb0], xmm1
pcmpeqd xmm1, xmm1
pmovmskb ebx, xmm0
test bx, bx
je 0x100605b0
mov edi, dword [esp + 0x10]
mov eax, ebx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], edi
lea ebx, [eax - 1]
and ebx, eax
bsf ax, ax
movzx eax, ax
add eax, edi
and eax, dword [esp + 0xc]
neg eax
lea edi, [eax + eax*8]
lea edx, [esi + edi*4 - 0x24]
call fcn.100354f0
pcmpeqd xmm1, xmm1
test al, al
je 0x100604f1
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
cmp eax, dword [esi + edi*4 - 0x18]
jne 0x100604f1
mov ecx, dword [esp + 0x18]
mov edx, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], edx
mov edx, dword [edx + edi*4 - 0x1c]
xor edi, edi
mov esi, dword [ecx + 8]
nop dword [eax]
cmp eax, edi
je 0x10060d5d
movzx ecx, byte [esi + edi]
mov bh, byte [edx + edi]
inc edi
mov bl, cl
add bl, 0xbf
cmp bl, 0x1a
setb ch
shl ch, 5
or ch, cl
mov cl, bh
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, bh
cmp ch, cl
je 0x10060560
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
jmp 0x100604f1
movdqa xmm0, xmmword [esp + 0xb0]
mov ecx, esi
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [ebp + 8]
pcmpeqb xmm0, xmm1
pmovmskb eax, xmm0
test ax, ax
jne 0x10060615
mov edx, dword [esp + 0x1c]
movdqu xmm2, xmmword [ecx + edi]
movdqa xmm0, xmmword [esp + 0x120]
mov esi, ecx
lea eax, [edi + edx + 0x10]
pcmpeqb xmm0, xmm2
add edx, 0x10
movdqa xmmword [esp + 0xb0], xmm2
and eax, dword [esp + 0xc]
pmovmskb ebx, xmm0
mov dword [esp + 0x1c], edx
test bx, bx
mov dword [esp + 0x14], eax
je 0x100605b0
jmp 0x100604fe
mov eax, dword [0x10551ebc]
cmp eax, 5
jb 0x10060624
mov eax, dword [0x10551ec0]
mov eax, dword [0x10411958]
dec eax
cmp eax, 5
jb 0x1006073b
mov ecx, dword [0x104112fc]
test ecx, ecx
je 0x1006073b
mov al, 1
cmp ecx, 1
je 0x10060653
cmp ecx, 2
jne 0x10060e86
mov al, 2
movzx edx, al
mov ecx, 0x104112fc
call fcn.10109ff0
mov edx, dword [esp + 0x18]
test al, al
je 0x1006073b
mov ecx, dword [0x10411300]
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x10061c2f
mov ebx, esi
mov edx, dword [ecx + 0x2c]
mov esi, dword [ecx + 0x34]
mov edi, dword [ecx + 0x38]
mov dword [esp + 0xe8], 0
mov dword [esp + 0x48], 0x10398834
mov dword [esp + 0x4c], 1
mov dword [esp + 0x50], 0
mov dword [esp + 0xec], edx
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], esi
lea esi, [esp + 0xe8]
lea edx, [esp + 0x108]
mov dword [esp + 0xf8], edi
mov dword [esp + 0x88], esi
lea esi, [esp + 0x88]
mov dword [esp + 0x58], edx
lea edx, [esp + 0x48]
mov dword [esp + 0x5c], 1
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x8c], edx
lea edx, [ecx + 0x2c]
mov dword [esp + 0x34], 1
mov dword [esp + 0x90], 0x103986f0
mov dword [esp + 0x38], edx
lea edx, [esp + 0x30]
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], 0x10061ca0
call fcn.1010a850
mov edx, esi
mov esi, ebx
mov eax, dword [esi + 0x18]
movsd xmm0, qword [esi + 0x10]
movq xmm1, qword [esi + 8]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x28]
movsd qword [esp + 0x98], xmm0
movq xmm0, qword [esi]
movq qword [esp + 0x90], xmm1
lea ecx, [eax + 0x40]
movq qword [esp + 0x88], xmm0
mov dword [esp + 0xe4], ecx
call fcn.10062540
test eax, eax
je 0x10060ed1
mov ebx, eax
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp ecx, eax
je 0x10060eaa
mov dword [esp + 0x10], ebx
jmp 0x100607bd
cmp eax, 2
je 0x10060ea1
nop word [eax + eax]
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
cmp ecx, eax
je 0x10060eaa
mov edx, dword [ebx + 0xc]
mov edi, dword [ebx + 8]
lea esi, [ecx + 1]
dec edx
and edx, esi
mov dword [ebx], edx
mov ecx, dword [edi + ecx*4]
test ecx, ecx
je 0x10060ea6
mov dword [esp + 0xd0], ecx
mov bl, 1
movzx eax, byte [ecx + 0x40]
test al, al
jne 0x10060aab
movzx eax, byte [esp + 0x90]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x8c]
mov byte [esp + 0x1c], al
movzx eax, byte [esp + 0x91]
mov byte [esp + 0xb0], al
movzx eax, word [esp + 0x92]
mov word [esp + 0x20], ax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x94], 2
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
cmp eax, 1
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
je 0x10060873
cmp eax, 2
je 0x10061bed
mov eax, dword [esp + 0xa0]
mov ebx, esi
movzx esi, word [esp + 0x20]
xor edx, edx
mov dword [esp + 0x120], eax
jmp 0x10060934
test esi, esi
je 0x10060884
push esi
call dword [edi + 0xc]
add esp, 4
mov ebx, eax
mov ecx, edx
jmp 0x10060886
xor ebx, ebx
mov eax, dword [esp + 0xc]
lock inc dword [eax]
jle 0x10061c01
mov eax, dword [esp + 0x14]
lock inc dword [eax + 0x20]
lock inc dword [eax]
jle 0x10061c01
cmp dword [esp + 0x94], 2
je 0x100608c8
mov dword [esp + 0x138], ecx
lea ecx, [esp + 0x88]
call fcn.100600d0
mov ecx, dword [esp + 0x138]
movzx eax, byte [esp + 0x1c]
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], edi
movzx esi, word [esp + 0x20]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x14]
mov byte [esp + 0x90], al
movzx eax, byte [esp + 0xb0]
mov byte [esp + 0x91], al
mov word [esp + 0x92], si
mov dword [esp + 0x94], 1
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x120]
mov dword [esp + 0x9c], edi
mov edi, ecx
mov dword [esp + 0xa0], edx
mov edx, 1
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x48], eax
movzx ecx, byte [eax + 0x40]
test cl, cl
jne 0x10060954
mov cl, 1
xchg byte [eax + 0x24], cl
test cl, cl
je 0x10060c58
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], ebx
movzx ebx, byte [esp + 0xb0]
movzx eax, byte [esp + 0x1c]
mov word [esp + 0xa4], si
mov esi, dword [esp + 0x14]
mov dword [esp + 0xcc], edi
mov edi, edx
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x120]
mov byte [esp + 0xac], bl
mov ebx, dword [esp + 0x10]
mov byte [esp + 0x2c], al
mov dword [esp + 0xa8], esi
mov dword [esp + 0xc4], ecx
mov esi, dword [esp + 0x48]
mov al, 1
xchg byte [esi + 0x40], al
mov al, 1
xchg byte [esi + 0x30], al
test al, al
jne 0x100609db
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x28]
mov dword [esi + 0x2c], 0
mov edx, 0
xchg byte [esi + 0x30], dl
test ecx, ecx
je 0x100609db
push eax
call dword [ecx + 4]
add esp, 4
mov al, 1
xchg byte [esi + 0x3c], al
test al, al
jne 0x10060a01
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x34]
mov dword [esi + 0x38], 0
test ecx, ecx
je 0x100609fc
push eax
call dword [ecx + 0xc]
add esp, 4
xor eax, eax
xchg byte [esi + 0x3c], al
mov eax, dword [esp + 0x48]
lock dec dword [eax]
jne 0x10060a13
lea ecx, [esp + 0x48]
call fcn.10062360
mov eax, dword [esp + 0x94]
cmp edi, 2
je 0x1006079e
cmp eax, 2
je 0x10060a34
lea ecx, [esp + 0x88]
call fcn.100600d0
mov eax, dword [esp + 0x24]
movzx esi, word [esp + 0xa4]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xa8]
xor ebx, ebx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x8c], eax
movzx eax, byte [esp + 0x2c]
mov byte [esp + 0x90], al
movzx eax, byte [esp + 0xac]
mov byte [esp + 0x91], al
mov word [esp + 0x92], si
mov dword [esp + 0x94], edi
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], ecx
mov eax, dword [0x10551ebc]
cmp eax, 5
jb 0x10060aba
mov eax, dword [0x10551ec0]
mov eax, dword [0x10411958]
dec eax
cmp eax, 5
jb 0x10060bd0
mov ecx, dword [0x10411308]
test ecx, ecx
je 0x10060bd0
mov al, 1
cmp ecx, 1
je 0x10060ae9
cmp ecx, 2
jne 0x10060cf4
mov al, 2
movzx edx, al
mov ecx, 0x10411308
call fcn.10109ff0
test al, al
je 0x10060bd0
mov ecx, dword [0x1041130c]
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x10061c05
mov edx, dword [ecx + 0x2c]
mov esi, dword [ecx + 0x34]
mov edi, dword [ecx + 0x38]
mov dword [esp + 0xe8], 0
mov dword [esp + 0x48], 0x103988a0
mov dword [esp + 0x4c], 1
mov dword [esp + 0x50], 0
mov dword [esp + 0xec], edx
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], esi
mov esi, dword [esp + 0x18]
lea edx, [esp + 0x30]
lea eax, [ecx + 0x2c]
mov dword [esp + 0xf8], edi
mov dword [esp + 0x108], edx
lea edx, [esp + 0xd8]
mov dword [esp + 0x10c], 1
mov dword [esp + 0x110], eax
mov dword [esp + 0x58], edx
lea edx, [esp + 0x48]
mov dword [esp + 0x5c], 1
mov dword [esp + 0xd8], esi
lea esi, [esp + 0xe8]
mov dword [esp + 0xdc], 0x10061ca0
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edx
lea edx, [esp + 0x108]
mov dword [esp + 0x38], 0x103986f0
call fcn.1010a850
nop word [eax + eax]
test bl, bl
mov ebx, dword [esp + 0x10]
je 0x100607b0
mov esi, dword [esp + 0xd0]
mov al, 1
xchg byte [esi + 0x40], al
mov al, 1
xchg byte [esi + 0x30], al
test al, al
jne 0x10060c11
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x28]
mov dword [esi + 0x2c], 0
mov edx, 0
xchg byte [esi + 0x30], dl
test ecx, ecx
je 0x10060c11
push eax
call dword [ecx + 4]
add esp, 4
mov al, 1
xchg byte [esi + 0x3c], al
test al, al
jne 0x10060c37
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x34]
mov dword [esi + 0x38], 0
test ecx, ecx
je 0x10060c32
push eax
call dword [ecx + 0xc]
add esp, 4
xor eax, eax
xchg byte [esi + 0x3c], al
mov eax, dword [esp + 0xd0]
lock dec dword [eax]
jne 0x100607b0
lea ecx, [esp + 0xd0]
call fcn.10062360
jmp 0x100607b0
cmp dword [eax + 0x14], 2
jne 0x10061c16
movzx ecx, byte [esp + 0x1c]
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edi
mov edi, 2
mov byte [eax + 0x10], cl
movzx ecx, byte [esp + 0xb0]
mov byte [eax + 0x11], cl
mov ecx, dword [esp + 0xc]
mov word [eax + 0x12], si
mov dword [eax + 0x14], edx
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x1c], ecx
mov ecx, dword [esp + 0x120]
mov dword [eax + 0x20], ecx
xor ecx, ecx
xchg byte [eax + 0x24], cl
movzx ecx, byte [eax + 0x40]
test cl, cl
je 0x10060d54
mov cl, 1
xchg byte [eax + 0x24], cl
mov ebx, dword [esp + 0x10]
test cl, cl
jne 0x100609a9
mov edi, dword [eax + 0x14]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
movzx ebx, byte [eax + 0x10]
mov bh, byte [eax + 0x11]
movzx esi, word [eax + 0x12]
mov dword [eax + 0x14], 2
cmp edi, 2
jne 0x10060d0b
xor ecx, ecx
mov edi, 2
xchg byte [eax + 0x24], cl
mov ebx, dword [esp + 0x10]
jmp 0x100609a9
mov ecx, 0x10411308
call fcn.10109f40
test al, al
jne 0x10060ae9
jmp 0x10060bd0
mov dword [esp + 0xc], ecx
mov ecx, dword [eax + 0x20]
mov dword [esp + 0xc4], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0xc8], ecx
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0xa8], ecx
xor ecx, ecx
xchg byte [eax + 0x24], cl
mov dword [esp + 0xcc], edx
mov byte [esp + 0x2c], bl
mov byte [esp + 0xac], bh
mov word [esp + 0xa4], si
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov ebx, dword [esp + 0x10]
jmp 0x100609a9
mov eax, dword [0x10551ebc]
cmp eax, 5
jb 0x10060d6c
mov eax, dword [0x10551ec0]
mov eax, dword [0x10411958]
mov esi, dword [ebp + 8]
dec eax
cmp eax, 5
jb 0x10060e7f
mov ecx, dword [0x104112f0]
test ecx, ecx
je 0x10060e7f
mov al, 1
cmp ecx, 1
je 0x10060d9e
cmp ecx, 2
jne 0x10061bb3
mov al, 2
movzx edx, al
mov ecx, 0x104112f0
call fcn.10109ff0
test al, al
je 0x10060e7f
mov ecx, dword [0x104112f4]
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x10061c84
mov edx, dword [ecx + 0x2c]
mov esi, dword [ecx + 0x34]
mov edi, dword [ecx + 0x38]
mov dword [esp + 0xe8], 0
mov dword [esp + 0x48], 0x1039881c
mov dword [esp + 0x4c], 1
mov dword [esp + 0x50], 0
mov dword [esp + 0xec], edx
lea edx, [esp + 0xe8]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf8], edi
lea edi, [esp + 0x108]
mov dword [esp + 0x88], edx
lea edx, [esp + 0x88]
mov dword [esp + 0x58], edi
lea edi, [esp + 0x48]
mov dword [esp + 0x5c], 1
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x8c], edi
lea edi, [ecx + 0x2c]
mov dword [esp + 0x34], 1
mov dword [esp + 0x90], 0x103986f0
mov dword [esp + 0x38], edi
mov dword [esp + 0x108], edx
lea edx, [esp + 0x30]
mov dword [esp + 0x10c], 0x10061ca0
call fcn.1010a850
mov esi, dword [ebp + 8]
mov ecx, esi
jmp 0x10061a41
mov ecx, 0x104112fc
call fcn.10109f40
mov edx, dword [esp + 0x18]
test al, al
jne 0x10060653
jmp 0x1006073b
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
cmp edx, eax
jne 0x10060ed1
mov edx, dword [esp + 0xe4]
lea ecx, [esp + 0x48]
push dword [esp + 0x18]
call fcn.10062940
add esp, 4
cmp dword [esp + 0x50], 0
je 0x10060ed1
lea ecx, [esp + 0x48]
call fcn.100621b0
cmp dword [esp + 0x94], 2
jne 0x1006100a
mov eax, dword [0x10551ebc]
mov edx, dword [esp + 0x18]
cmp eax, 5
jb 0x10060ef2
mov eax, dword [0x10551ec0]
mov eax, dword [0x10411958]
dec eax
cmp eax, 5
jb 0x10061a4a
mov ecx, dword [0x1041132c]
test ecx, ecx
je 0x10061a4a
mov al, 1
cmp ecx, 1
je 0x10060f21
cmp ecx, 2
jne 0x10061b6a
mov al, 2
movzx edx, al
mov ecx, 0x1041132c
call fcn.10109ff0
mov edx, dword [esp + 0x18]
test al, al
je 0x10061a4a
mov ecx, dword [0x10411330]
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x10061c51
mov edx, dword [ecx + 0x2c]
mov esi, dword [ecx + 0x34]
mov edi, dword [ecx + 0x38]
mov dword [esp + 0xe8], 0
mov dword [esp + 0x48], 0x103988f0
mov dword [esp + 0x4c], 1
mov dword [esp + 0x50], 0
mov dword [esp + 0xec], edx
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], esi
lea esi, [esp + 0xe8]
lea edx, [esp + 0xd8]
mov dword [esp + 0xf8], edi
mov dword [esp + 0x30], esi
lea esi, [esp + 0x30]
mov dword [esp + 0x58], edx
lea edx, [esp + 0x48]
mov dword [esp + 0x5c], 1
mov dword [esp + 0x108], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x34], edx
lea edx, [ecx + 0x2c]
mov dword [esp + 0x10c], 1
mov dword [esp + 0x38], 0x103986f0
mov dword [esp + 0x110], edx
lea edx, [esp + 0x108]
mov dword [esp + 0xd8], esi
mov dword [esp + 0xdc], 0x10061ca0
call fcn.1010a850
mov edx, esi
jmp 0x10061a4a
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x18]
movsd xmm0, qword [esp + 0x98]
movsd xmm2, qword [esp + 0x88]
movsd xmm1, qword [esp + 0x90]
xor edi, edi
mov dword [esp + 0x100], eax
movzx eax, byte [edx]
movsd qword [esp + 0xf8], xmm0
movsd qword [esp + 0xf0], xmm1
movsd qword [esp + 0xe8], xmm2
test eax, eax
je 0x100610a9
cmp eax, 1
je 0x1006109b
call sub.KERNEL32.dll_GetProcessHeap
push 0x10
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x10061c40
mov ebx, dword [esp + 0x18]
mov esi, eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0xc]
lea edx, [eax + 8]
push dword [eax + 4]
push dword [eax]
push edx
push esi
call dword [ecx]
mov edx, ebx
add esp, 0x10
mov eax, 2
jmp 0x100610ab
movzx edi, byte [edx + 1]
mov eax, 1
shl edi, 8
jmp 0x100610ab
xor eax, eax
mov ebx, dword [esp + 0x28]
mov ecx, dword [edx + 0x14]
or edi, eax
mov dword [esp + 0x108], edi
mov dword [esp + 0x10c], esi
mov esi, edx
add edx, 0x10
lea eax, [ebx + 0x20]
mov dword [esp + 0xc8], eax
lea eax, [esp + 0x110]
push dword [esi + 0xc]
push dword [esi + 8]
push edx
push eax
call dword [ecx]
add esp, 0x10
movsd xmm0, qword [esp + 0x118]
movq xmm2, qword [esp + 0x108]
movsd xmm1, qword [esp + 0x110]
movsd qword [esp + 0x40], xmm0
movsd qword [esp + 0x38], xmm1
movq qword [esp + 0x30], xmm2
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
mov edx, dword [ebx + 0x28]
mov esi, dword [ebx + 0x2c]
mov edi, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], esi
xor eax, 0x6e657261
xor edi, 0x70736575
mov dword [esp + 0x58], edi
mov edi, ecx
xor ecx, 0x6c796765
xor edi, 0x736f6d65
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], eax
mov eax, edx
mov dword [esp + 0x64], ecx
mov ecx, esi
xor edx, 0x79746573
xor esi, 0x74656462
xor eax, 0x6e646f6d
xor ecx, 0x646f7261
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], edx
lea ecx, [esp + 0x30]
lea edx, [esp + 0x48]
mov dword [esp + 0x74], esi
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
call fcn.10062430
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0x5c]
pcmpeqd xmm2, xmm2
mov dword [esp + 0xe4], 0x10
shl edx, 0x18
mov dword [esp + 0x120], esi
mov dword [esp + 0xc], eax
or edx, dword [esp + 0x7c]
mov dword [esp + 0x14], edx
xor ecx, edx
mov edx, dword [esp + 0x70]
xor edx, esi
mov esi, dword [esp + 0x58]
add esi, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xb0], esi
mov esi, dword [esp + 0xc]
adc edi, ebx
mov dword [esp + 0x10], edi
shld eax, ebx, 0xd
shld ebx, esi, 0xd
mov esi, dword [esp + 0xb0]
xor ebx, edi
mov edi, dword [esp + 0x64]
xor eax, esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x60]
add eax, edx
mov dword [esp + 0xc], eax
mov eax, edx
adc edi, ecx
shrd edx, ecx, 0x10
shld eax, ecx, 0x10
xor edx, edi
xor eax, dword [esp + 0xc]
add dword [esp + 0x10], eax
mov ecx, eax
adc esi, edx
shrd eax, edx, 0xb
shld ecx, edx, 0x15
xor eax, esi
xor ecx, dword [esp + 0x10]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x20]
add dword [esp + 0xc], eax
mov edx, eax
adc edi, ebx
shld edx, ebx, 0x11
shrd eax, ebx, 0xf
mov ebx, esi
mov esi, dword [esp + 0x120]
mov dword [esp + 0x1c], edx
xor eax, edi
xor ebx, dword [esp + 0x14]
xor edi, 0xff
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x14], edi
xor dword [esp + 0x10], esi
mov esi, ecx
xor edx, dword [esp + 0xc]
add dword [esp + 0x10], edx
mov edi, edx
adc ebx, eax
shrd edx, eax, 0x13
shld edi, eax, 0xd
mov eax, dword [esp + 0xb0]
xor edx, ebx
xor edi, dword [esp + 0x10]
add dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
mov edx, ebx
mov ebx, dword [esp + 0xc]
adc ebx, eax
shld esi, eax, 0x10
shrd ecx, eax, 0x10
xor esi, dword [esp + 0x14]
xor ecx, ebx
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x10]
add edx, esi
mov eax, esi
adc ebx, ecx
shld eax, ecx, 0x15
shrd esi, ecx, 0xb
mov dword [esp + 0xb0], edx
mov ecx, edi
xor eax, edx
xor esi, ebx
mov dword [esp + 0x10], ebx
add dword [esp + 0x14], edi
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x1c]
adc edx, ebx
shld ecx, ebx, 0x11
shrd edi, ebx, 0xf
xor ecx, dword [esp + 0x14]
xor edi, edx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x10]
add dword [esp + 0xb0], ecx
mov ebx, ecx
adc edx, edi
shld ebx, edi, 0xd
shrd ecx, edi, 0x13
mov edi, dword [esp + 0xc]
xor ebx, dword [esp + 0xb0]
xor ecx, edx
mov dword [esp + 0x10], edx
mov edx, eax
add edi, eax
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0xc], edi
adc ebx, esi
shrd eax, esi, 0x10
shld edx, esi, 0x10
mov dword [esp + 0x14], ebx
xor eax, ebx
mov ebx, dword [esp + 0x10]
xor edx, edi
mov edi, dword [esp + 0xb0]
mov esi, edx
add ebx, edx
adc edi, eax
shld esi, eax, 0x15
shrd edx, eax, 0xb
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], ebx
xor esi, ebx
xor edx, edi
mov dword [esp + 0xb0], edi
mov edi, dword [esp + 0x14]
add dword [esp + 0xc], eax
mov ebx, eax
adc edi, ecx
shld ebx, ecx, 0x11
shrd eax, ecx, 0xf
mov ecx, dword [esp + 0xb0]
xor ebx, dword [esp + 0xc]
xor eax, edi
mov dword [esp + 0x14], edi
add dword [esp + 0x10], ebx
mov edi, ebx
adc ecx, eax
shld edi, eax, 0xd
shrd ebx, eax, 0x13
mov eax, dword [esp + 0xc]
xor ebx, ecx
xor edi, dword [esp + 0x10]
add dword [esp + 0x14], esi
mov ecx, esi
adc eax, edx
shrd esi, edx, 0x10
shld ecx, edx, 0x10
mov edx, dword [esp + 0x14]
xor esi, eax
xor ecx, edx
shld ecx, esi, 0x15
add edx, edi
adc eax, ebx
shrd ebx, edi, 0xf
xor ebx, ecx
xor ebx, eax
xor ebx, edx
mov edx, dword [esp + 0x28]
mov eax, ebx
shr eax, 0x19
movd xmm0, eax
mov dword [esp + 0xc4], eax
mov al, byte [esp + 0x30]
mov ecx, dword [edx + 0x30]
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0xe0
pshufd xmm0, xmm0, 0
mov byte [esp + 0x120], al
mov al, byte [esp + 0x31]
movdqa xmm3, xmm0
mov edi, ecx
mov dword [esp + 0xb0], ecx
and edi, ebx
lea esi, [edi + 0x10]
mov dword [esp + 0xc], edi
and esi, ecx
mov byte [esp + 0xa8], al
mov dword [esp + 0xac], esi
mov esi, dword [edx + 0x34]
movdqu xmm1, xmmword [esi + edi]
pcmpeqb xmm3, xmm1
pmovmskb eax, xmm3
mov dword [esp + 0x10], eax
lea eax, [edx + 0x30]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
mov eax, ecx
mov ecx, dword [esp + 0x10]
test cx, cx
je 0x10061500
mov edi, dword [esp + 0xc]
lea edx, [ecx - 1]
mov dword [esp + 0xc], edi
and edx, ecx
bsf cx, cx
movzx ecx, cx
mov dword [esp + 0x10], edx
add ecx, edi
and ecx, dword [esp + 0xb0]
neg ecx
lea ecx, [ecx + ecx*8]
mov dword [esp + 0x20], ecx
movzx ecx, byte [esi + ecx*4 - 0x24]
cmp ecx, 1
je 0x100615f0
cmp ecx, 2
je 0x10061560
test ecx, ecx
je 0x10061be1
cmp byte [esp + 0x120], 0
jne 0x100614a0
jmp 0x10061be1
mov edi, dword [esp + 0xac]
pcmpeqb xmm1, xmm2
pmovmskb ecx, xmm1
test cx, cx
jne 0x1006169e
mov ecx, dword [esp + 0xe4]
movdqu xmm1, xmmword [esi + edi]
movdqa xmm3, xmm0
lea eax, [edi + ecx + 0x10]
add ecx, 0x10
pcmpeqb xmm3, xmm1
and eax, dword [esp + 0xb0]
mov dword [esp + 0xe4], ecx
pmovmskb ecx, xmm3
test cx, cx
mov dword [esp + 0xac], eax
je 0x10061500
jmp 0x100614ad
mov cl, byte [esp + 0x120]
cmp cl, 2
jne 0x100615fc
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + eax*4 - 0x20]
mov edi, dword [edx + 4]
cmp edi, dword [ecx + 4]
jne 0x100614a0
mov eax, dword [edx]
xor ecx, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov dword [esp + 0xcc], eax
nop dword [eax]
cmp edi, ecx
je 0x10061635
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0xcc]
movzx eax, byte [eax + ecx]
mov dh, byte [edx + ecx]
inc ecx
mov dl, al
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
mov al, dh
add al, 0xbf
cmp al, 0x1a
setb al
shl al, 5
or al, dh
cmp dl, al
je 0x100615a0
jmp 0x100614a0
mov cl, byte [esp + 0x120]
cmp cl, 1
je 0x10061609
test cl, cl
jne 0x100614a0
jmp 0x10061be1
mov eax, dword [esp + 0x20]
lea ecx, [esi + eax*4 - 0x24]
cmp byte [ecx + 1], 1
jne 0x10061627
cmp byte [esp + 0xa8], 0
je 0x100614a0
jmp 0x10061635
cmp byte [esp + 0xa8], 0
jne 0x100614a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
cmp dword [esi + ecx*4 - 0x18], eax
jne 0x100614a0
mov eax, dword [esp + 0x20]
xor edi, edi
mov ecx, dword [esi + eax*4 - 0x1c]
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp dword [esp + 0x14], edi
je 0x10061ac9
movzx eax, byte [ecx + edi]
mov edx, dword [esp + 0x1c]
mov ah, al
movzx edx, byte [edx + edi]
inc edi
add ah, 0xbf
cmp ah, 0x1a
setb ah
shl ah, 5
or ah, al
mov al, dl
add al, 0xbf
cmp al, 0x1a
setb al
shl al, 5
or al, dl
cmp ah, al
je 0x10061660
jmp 0x100614a0
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xd8], eax
cmp dword [ecx + 0x38], 0
je 0x10061a98
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x2c], eax
mov al, byte [esp + 0x39]
mov byte [esp + 0x120], al
movzx eax, word [esp + 0x3a]
mov word [esp + 0x20], ax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xb0]
mov edi, ebx
and edi, eax
movdqu xmm0, xmmword [esi + edi]
lea ebx, [ecx + edi + 0x10]
add ecx, 0x10
pmovmskb edx, xmm0
test dx, dx
je 0x100616f0
mov ebx, eax
bsf ax, dx
movzx eax, ax
add edi, eax
and edi, ebx
mov cl, byte [esi + edi]
test cl, cl
jns 0x10061bca
and cl, 1
neg cl
movsx eax, cl
mov ecx, dword [esp + 0x28]
add dword [ecx + 0x38], eax
lea eax, [edi - 0x10]
mov edx, dword [esp + 0xc4]
and eax, ebx
mov ebx, dword [esp + 0x10]
mov byte [esi + edi], dl
mov byte [eax + esi + 0x10], dl
mov edx, dword [esp + 0x2c]
neg edi
lea eax, [edi + edi*8]
mov edi, dword [esp + 0x14]
mov dword [esi + eax*4 - 0x24], edx
mov edx, dword [esp + 0x24]
mov dword [esi + eax*4 - 0x20], edx
mov edx, dword [esp + 0x1c]
mov byte [esi + eax*4 - 0x1c], dl
mov dl, byte [esp + 0x120]
mov byte [esi + eax*4 - 0x1b], dl
movzx edx, word [esp + 0x20]
mov word [esi + eax*4 - 0x1a], dx
mov dword [esi + eax*4 - 0x18], edi
mov edi, dword [esp + 0xc]
mov dword [esi + eax*4 - 0x14], ebx
lea ebx, [esi + eax*4 - 0xc]
mov dword [esi + eax*4 - 0x10], edi
mov dword [esi + eax*4 - 0xc], 8
mov dword [esi + eax*4 - 8], 0
mov dword [esi + eax*4 - 4], 0
inc dword [ecx + 0x3c]
mov eax, dword [ecx + 0x78]
cmp eax, dword [ebx + 8]
mov eax, dword [0x10551ebc]
jbe 0x10061929
cmp eax, 4
jb 0x100617c7
mov eax, dword [0x10551ec0]
mov eax, dword [0x10411958]
add eax, 0xfffffffe
cmp eax, 4
jb 0x100618d0
mov ecx, dword [0x10411320]
test ecx, ecx
je 0x100618d0
mov al, 1
cmp ecx, 1
je 0x100617f8
cmp ecx, 2
jne 0x10061b85
mov al, 2
movzx edx, al
mov ecx, 0x10411320
call fcn.10109ff0
test al, al
je 0x100618d0
mov ecx, dword [0x10411324]
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x10061c62
mov edx, dword [ecx + 0x2c]
mov esi, dword [ecx + 0x34]
mov edi, dword [ecx + 0x38]
mov dword [esp + 0x30], 0
mov dword [esp + 0x48], 0x103988d8
mov dword [esp + 0x4c], 1
mov dword [esp + 0x50], 0
mov dword [esp + 0x34], edx
lea edx, [esp + 0x30]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], esi
lea esi, [esp + 0xd0]
mov dword [esp + 0x40], edi
mov dword [esp + 0x108], edx
lea edx, [esp + 0x108]
mov dword [esp + 0x58], esi
lea esi, [esp + 0x48]
mov dword [esp + 0x5c], 1
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x10c], esi
lea esi, [ecx + 0x2c]
mov dword [esp + 0xdc], 1
mov dword [esp + 0x110], 0x103986f0
mov dword [esp + 0xe0], esi
mov dword [esp + 0xd0], edx
lea edx, [esp + 0xd8]
mov dword [esp + 0xd4], 0x10061ca0
call fcn.1010a850
call fcn.100fe340
movsd xmm1, qword [esp + 0xf0]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], ecx
movsd xmm0, qword [esp + 0xe8]
mov eax, dword [esp + 0x100]
lea edx, [esp + 0x48]
mov ecx, ebx
movsd qword [esp + 0x60], xmm1
movsd xmm1, qword [esp + 0xf8]
movsd qword [esp + 0x58], xmm0
mov dword [esp + 0x70], eax
movsd qword [esp + 0x68], xmm1
call fcn.10063990
jmp 0x10061a46
cmp eax, 5
jb 0x10061933
mov eax, dword [0x10551ec0]
mov eax, dword [0x10411958]
dec eax
cmp eax, 5
jb 0x10061a3a
mov ecx, dword [0x10411314]
test ecx, ecx
je 0x10061a3a
mov al, 1
cmp ecx, 1
je 0x10061962
cmp ecx, 2
jne 0x10061b9c
mov al, 2
movzx edx, al
mov ecx, 0x10411314
call fcn.10109ff0
test al, al
je 0x10061a3a
mov ecx, dword [0x10411318]
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x10061c73
mov edx, dword [ecx + 0x2c]
mov esi, dword [ecx + 0x34]
mov edi, dword [ecx + 0x38]
mov dword [esp + 0x30], 0
mov dword [esp + 0x48], 0x103988b8
mov dword [esp + 0x4c], 2
mov dword [esp + 0x50], 0
mov dword [esp + 0x34], edx
lea edx, [esp + 0x30]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], esi
lea esi, [esp + 0xd0]
mov dword [esp + 0x40], edi
mov dword [esp + 0x108], edx
lea edx, [esp + 0x108]
mov dword [esp + 0x58], esi
lea esi, [esp + 0x48]
mov dword [esp + 0x5c], 1
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x10c], esi
lea esi, [ecx + 0x2c]
mov dword [esp + 0xdc], 1
mov dword [esp + 0x110], 0x103986f0
mov dword [esp + 0xe0], esi
mov dword [esp + 0xd0], edx
lea edx, [esp + 0xd8]
mov dword [esp + 0xd4], 0x10061ca0
call fcn.1010a850
lea ecx, [esp + 0xe8]
call fcn.100600d0
mov edx, dword [esp + 0x18]
cmp byte [edx], 2
jb 0x10061a7d
mov eax, dword [edx + 4]
mov ecx, dword [eax + 0xc]
lea edx, [eax + 8]
push dword [eax + 4]
push dword [eax]
push edx
call dword [ecx + 4]
add esp, 0xc
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 4]
call sub.KERNEL32.dll_GetProcessHeap
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x14]
lea ecx, [edx + 0x10]
push dword [edx + 0xc]
push dword [edx + 8]
push ecx
call dword [eax + 4]
add esp, 0xc
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 0xa4]
lea eax, [esp + 0xd8]
lea ecx, [esp + 0x48]
push eax
call fcn.10062e80
add esp, 4
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x30]
mov esi, dword [eax + 0x34]
mov dword [esp + 0xb0], ecx
jmp 0x100616ba
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0xa4]
cmp cl, 3
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x20]
lea edx, [esi + edx*4]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ebx
je 0x10061b59
lea ebx, [esp + 0x58]
cmp cl, 2
jb 0x10061b49
mov eax, dword [edi + 0xc]
lea ecx, [edi + 8]
push dword [edi + 4]
push dword [edi]
push ecx
call dword [eax + 4]
add esp, 0xc
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x5c]
push dword [esp + 0x14]
push eax
push ebx
call dword [ecx + 4]
add esp, 0xc
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
lea ebx, [esi + eax*4 - 0xc]
jmp 0x100617ac
mov ecx, 0x1041132c
call fcn.10109f40
mov edx, dword [esp + 0x18]
test al, al
jne 0x10060f21
jmp 0x10061a4a
mov ecx, 0x10411320
call fcn.10109f40
test al, al
jne 0x100617f8
jmp 0x100618d0
mov ecx, 0x10411314
call fcn.10109f40
test al, al
jne 0x10061962
jmp 0x10061a3a
mov ecx, 0x104112f0
call fcn.10109f40
test al, al
jne 0x10060d9e
jmp 0x10060e7f
movdqa xmm0, xmmword [esi]
pmovmskb eax, xmm0
bsf ax, ax
movzx edi, ax
mov cl, byte [esi + edi]
jmp 0x10061721
mov ecx, 0x1037fbf8
call fcn.10032c50
ud2
mov ecx, str.value_already_sent
mov edx, 0x12
push 0x10398860
jmp 0x10061c93
ud2
mov ecx, 0x103986bd
mov edx, 0x22
push 0x103988a8
jmp 0x10061c93
mov ecx, str.assertion_failed:_slot.is_none__
mov edx, 0x20
push 0x10398890
call fcn.1004d820
add esp, 4
ud2
mov ecx, 0x103986bd
mov edx, 0x22
push 0x1039883c
jmp 0x10061c93
mov ecx, 0x10
mov edx, 4
call fcn.100067d0
ud2
mov ecx, 0x103986bd
mov edx, 0x22
push 0x103988f8
jmp 0x10061c93
mov ecx, 0x103986bd
mov edx, 0x22
push 0x103988e0
jmp 0x10061c93
mov ecx, 0x103986bd
mov edx, 0x22
push 0x103988c8
jmp 0x10061c93
mov ecx, 0x103986bd
mov edx, 0x22
push 0x10398824
call fcn.1000a9c0
add esp, 4
ud2