Function at 0x10001000
Capabilities:
Check for software breakpoints
Terminate process

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xf4
mov dword [esp], edx
mov ebx, dword [ecx + 8]
mov eax, dword [ebx + 0x20]
mov ebp, dword [ebx + eax*4 + 0x400028]
test ebp, ebp
mov dword [esp + 4], ecx
je 0x100010dd
mov dword [esp + 0x18], 0
test ebp, ebp
mov edi, dword [esp + 0x18]
je 0x100010a8
mov esi, dword [ebx + eax*4 + 0x800028]
mov eax, 0xffff
sub eax, edi
cmp esi, eax
ja 0x100010a8
mov eax, dword [esp]
add eax, edi
push esi
push ebp
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add edi, esi
mov dword [esp + 0x18], edi
push ebp
call sub.msvcrt.dll_free
pop eax
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
and dword [ebx + eax*4 + 0x400028], 0
and dword [ebx + eax*4 + 0x800028], 0
add eax, 1
mov esi, 0
adc ecx, esi
mov edx, 0xfffff
cmp edx, eax
mov edx, 0
sbb edx, ecx
cmovb ecx, esi
cmovb eax, esi
mov dword [ebx + 0x24], ecx
mov dword [ebx + 0x20], eax
mov ebp, dword [ebx + eax*4 + 0x400028]
jmp 0x1000102e
test edi, edi
je 0x100010e9
mov esi, dword [esp + 4]
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov edx, eax
sub edx, ecx
cmp edx, edi
jae 0x100010f7
add eax, 0xffff
mov dword [esi + 0x28], eax
push eax
push dword [esi + 0x2c]
call sub.msvcrt.dll_realloc
pop ecx
pop edx
test eax, eax
je 0x1000110d
mov dword [esi + 0x2c], eax
mov ecx, dword [esi + 0x30]
jmp 0x100010fa
mov esi, ecx
mov dword [esp + 0x18], 0
jmp 0x1000110d
mov dword [esp + 0x18], 0
mov esi, dword [esp + 4]
jmp 0x1000110d
mov eax, dword [esi + 0x2c]
add ecx, eax
push edi
push dword [esp + 4]
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add dword [esi + 0x30], edi
mov esi, dword [esi + 0x30]
test esi, esi
je 0x10001dd1
mov eax, dword [esp + 4]
lea ecx, [eax + 0x3c]
mov dword [esp + 0xa4], ecx
xor edi, edi
inc edi
mov ecx, dword [eax + 0x2c]
mov ebp, ecx
call fcn.10005fc0
mov ebx, eax
mov eax, edi
cmp ebx, 0x40
jb 0x10001153
push 2
pop eax
cmp ebx, 0x4000
jb 0x10001153
cmp ebx, 0x400000
push 4
pop eax
sbb eax, 0
lea ecx, [eax + ebx]
mov dword [esp + 0x2c], ecx
cmp ecx, esi
ja 0x10001dd1
add ebp, eax
lea esi, [ebx + ebx]
imul eax, ebx, 0x3e8
mov dword [esp + 0x10], eax
push esi
call sub.msvcrt.dll_malloc
pop ecx
mov edi, eax
mov dword [esp + 0x14], ebp
add ebx, ebp
mov dword [esp + 8], esi
lea eax, [edi + esi]
mov dword [esp], eax
xor esi, esi
mov dword [esp + 0xc], edi
test esi, esi
jne 0x1000125f
mov esi, edi
mov edi, dword [esp + 0x14]
lea ecx, [edi + 1]
movzx edx, byte [edi]
cmp edx, 0x1f
ja 0x100011c9
lea edi, [esi + edx]
inc edi
cmp edi, dword [esp]
ja 0x10001230
inc edx
lea edi, [ecx + edx]
cmp edi, ebx
jbe 0x100011c2
jmp 0x1000122c
mov al, byte [ecx]
inc ecx
mov byte [esi], al
inc esi
sub edx, 1
jae 0x100011bc
jmp 0x10001218
cmp ecx, ebx
jae 0x1000122c
mov ebp, edx
shr ebp, 5
cmp ebp, 7
jne 0x100011e5
lea ecx, [edi + 2]
cmp ecx, ebx
jae 0x1000122c
movzx ebp, byte [edi + 1]
add ebp, 7
lea eax, [esi + ebp]
add eax, 2
cmp eax, dword [esp]
ja 0x10001230
and edx, 0x1f
shl edx, 8
mov eax, edx
not eax
add eax, esi
movzx edi, byte [ecx]
sub eax, edi
cmp eax, dword [esp + 0xc]
jb 0x1000122c
inc ecx
add ebp, 2
add edi, edx
not edi
mov al, byte [esi + edi]
mov byte [esi], al
inc esi
dec ebp
jne 0x1000120f
mov edi, ecx
cmp ecx, ebx
jb 0x1000119e
mov edi, dword [esp + 0xc]
sub esi, edi
jne 0x10001190
jmp 0x1000123f
push 0x16
jmp 0x10001232
push 7
pop esi
mov edi, dword [esp + 0xc]
call dword [sym.imp.msvcrt.dll__errno]
mov dword [eax], esi
mov esi, dword [esp + 8]
add esi, esi
cmp esi, dword [esp + 0x10]
ja 0x10001dca
push esi
push edi
call sub.msvcrt.dll_realloc
pop ecx
pop edx
mov edi, eax
jmp 0x10001180
cmp dword [esp + 0x2c], 0
je 0x10001dd1
xor ebp, ebp
mov dword [esp + 8], 0x400
push 0x400
call sub.msvcrt.dll_malloc
pop ecx
mov dword [esp], eax
xor eax, eax
xor ebx, ebx
inc ebx
neg ebp
mov ecx, 0
sbb ecx, eax
jl 0x100015f2
mov ecx, dword [esp]
mov edx, dword [esp + 8]
call fcn.100029a8
mov edi, eax
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], esi
and dword [esp + 0x64], 0
mov dword [esp + 0x68], eax
mov ebx, edi
add ebx, 0x10
xor ebp, ebp
mov eax, esi
cmp ebp, eax
jge 0x100015b5
lea ecx, [esp + 0x5c]
lea edx, [esp + 0x30]
call fcn.100061f8
cmp eax, 0x12e
je 0x1000139e
cmp eax, 2
je 0x100013be
cmp eax, 0x67
je 0x100013d3
cmp eax, 0x68
je 0x100013f1
cmp eax, 0x69
je 0x1000140f
cmp eax, 0x6a
je 0x1000142f
cmp eax, 0x6b
je 0x1000144d
cmp eax, 0x6c
je 0x1000146b
cmp eax, 0x6e
je 0x1000148b
cmp eax, 0x6f
je 0x100014a9
cmp eax, 0x70
je 0x100014c7
cmp eax, 0xc9
je 0x100014e5
cmp eax, 0xcb
je 0x10001505
cmp eax, 0xcc
je 0x10001522
cmp eax, 0xcd
je 0x1000153d
cmp eax, 0xce
je 0x10001558
cmp eax, 0x12d
je 0x10001575
cmp eax, 1
jne 0x100015a6
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x5c]
call fcn.100062bf
mov dword [edi + 4], eax
jmp 0x10001599
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 0x10
lea ecx, [esp + 0x5c]
push 0x1000297c
push 0x10002970
push 4
jmp 0x10001590
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x5c]
call fcn.100062bf
mov dword [edi + 8], eax
jmp 0x10001599
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 1
lea ecx, [esp + 0x5c]
push 0x10001e07
push 0x10001de0
jmp 0x10001571
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 2
lea ecx, [esp + 0x5c]
push 0x1000238b
push 0x10002338
jmp 0x1000158e
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 3
lea ecx, [esp + 0x5c]
push 0x10001f98
push 0x10001f0a
push 0x28
jmp 0x10001590
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 4
lea ecx, [esp + 0x5c]
push 0x100020a5
push 0x10002081
jmp 0x10001571
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 5
lea ecx, [esp + 0x5c]
push 0x1000210a
push 0x100020e6
jmp 0x10001571
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 6
lea ecx, [esp + 0x5c]
push 0x10002290
push 0x1000221a
push 0x1c
jmp 0x10001590
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 7
lea ecx, [esp + 0x5c]
push 0x10002172
push 0x1000214b
jmp 0x10001571
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 8
lea ecx, [esp + 0x5c]
push 0x10001e9c
push 0x10001e4a
jmp 0x1000158e
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 9
lea ecx, [esp + 0x5c]
push 0x100021d9
push 0x100021b5
jmp 0x10001571
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 0xa
lea ecx, [esp + 0x5c]
push 0x100027e2
push 0x10002777
push 0x18
jmp 0x10001590
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 0xb
lea ecx, [esp + 0x5c]
push 0x10002570
push 0x100024c0
push 0x20
jmp 0x10001590
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 0xc
lea ecx, [esp + 0x5c]
push 0x10002734
push 0x1000270d
jmp 0x10001571
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 0xd
lea ecx, [esp + 0x5c]
push 0x1000244e
push 0x100023fd
jmp 0x1000158e
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 0xe
lea ecx, [esp + 0x5c]
push 0x10002894
push 0x10002870
push 8
jmp 0x10001590
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 0xf
lea ecx, [esp + 0x5c]
push 0x10002912
push 0x100028d5
push 0x10
push ebx
call fcn.100066f7
add esp, 0x10
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x64]
jmp 0x100012c4
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x5c]
call fcn.100065e2
jmp 0x10001599
cmp ebp, 0xfffffffd
je 0x100015ce
xor eax, eax
test ebp, ebp
mov ebx, 1
jg 0x10001287
jmp 0x100016a9
mov eax, dword [esp + 8]
add eax, eax
mov dword [esp + 8], eax
push eax
push dword [esp + 4]
call sub.msvcrt.dll_realloc
pop ecx
pop edx
mov dword [esp], eax
push 0xfffffffffffffffd
pop ebp
xor eax, eax
dec eax
jmp 0x10001284
add dword [edi + 8], 0x65ec8780
mov eax, dword [edi + 0xc]
cmp eax, 0xf
je 0x100016c5
cmp eax, 2
je 0x1000172f
cmp eax, 3
mov esi, dword [esp + 4]
je 0x1000179b
cmp eax, 5
je 0x10001837
cmp eax, 6
je 0x100018e6
cmp eax, 7
je 0x100019dc
cmp eax, 8
je 0x100019eb
cmp eax, 9
je 0x10001a60
cmp eax, 1
jne 0x10001cc1
lea eax, [esp + 0x5c]
push eax
push 0xb
push 0x10008012
push 0x10008007
call fcn.100048d0
add esp, 0x10
mov ebp, eax
mov eax, dword [edi + 0x10]
mov ebx, dword [eax + 4]
mov esi, dword [esi + 8]
mov eax, dword [esi + 4]
test eax, eax
je 0x10001683
push eax
call sub.msvcrt.dll_free
pop eax
mov eax, dword [esi]
mov dword [esi + 4], eax
push ebx
call sub.msvcrt.dll__strdup
pop ecx
mov dword [esi], eax
mov ecx, ebx
call fcn.10005052
mov dword [esi + 0xc], eax
mov esi, dword [esp + 4]
mov ecx, esi
xor edx, edx
push ebp
jmp 0x10001b51
push dword [esp]
call sub.msvcrt.dll_free
pop eax
push dword [esp + 0xc]
call sub.msvcrt.dll_free
pop eax
mov esi, dword [esp + 4]
jmp 0x10001cee
lea eax, [esp + 0x5c]
push eax
push 0x21
push 0x100081f1
push 0x100081d0
call fcn.100048d0
add esp, 0x10
mov dword [esp], eax
mov ebx, dword [edi + 4]
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 4]
mov dword [esp + 8], ecx
mov ebp, dword [eax + 8]
mov esi, dword [eax + 0xc]
mov ecx, dword [esp + 4]
mov edx, ebx
call fcn.100029e3
test eax, eax
je 0x10001b23
mov eax, dword [eax + 4]
test eax, eax
je 0x10001b13
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x10001b13
push esi
push ebp
push dword [esp + 0x10]
push ebx
push eax
call ecx
add esp, 0x14
jmp 0x10001b23
lea eax, [esp + 0x5c]
push eax
push 0x34
push 0x10008234
push 0x10008200
call fcn.100048d0
add esp, 0x10
mov dword [esp], eax
lea eax, [esp + 0x30]
push eax
push 0x19
push 0x10008259
push 0x10008240
call fcn.100048d0
add esp, 0x10
mov ebp, dword [edi + 0x10]
mov ebx, dword [ebp + 4]
cmp byte [ebp + 0xc], 0
mov esi, dword [esp + 4]
je 0x10001b2c
mov ecx, dword [esi + 0x444]
mov edx, ebx
call fcn.10003f46
mov ecx, esi
xor edx, edx
push dword [esp]
call fcn.100036dd
pop eax
mov ecx, esi
mov edx, ebx
jmp 0x10001cbc
lea eax, [esp + 0x5c]
push eax
push 0x45
push 0x10008095
push 0x10008050
call fcn.100048d0
add esp, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x10]
mov ebp, dword [eax + 4]
mov ecx, dword [eax + 0x10]
mov dword [esp], ecx
mov ecx, dword [eax + 0x14]
mov dword [esp + 8], ecx
cmp byte [eax + 0xc], 0
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 0x20]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], edx
je 0x10001b5b
mov ecx, dword [esi + 0x444]
mov edx, ebp
call fcn.10003f46
lea eax, [esp + 0x30]
push eax
push 0x23
push 0x100082c3
push 0x100082a0
call fcn.100048d0
add esp, 0x10
push 0x11
pop esi
mov ecx, dword [esp + 4]
cmp dword [ecx + esi*4], 0
je 0x10001aa6
cmp esi, 0x111
je 0x10001b9d
inc esi
jmp 0x1000181a
lea eax, [esp + 0x30]
push eax
push 0x2a
push 0x100080fa
push 0x100080d0
call fcn.100048d0
add esp, 0x10
mov ebp, eax
lea eax, [esp + 0xcb]
push eax
push 0x29
push 0x100086d4
push 0x10008100
call fcn.100048d0
add esp, 0x10
mov ebx, eax
lea eax, [esp + 0xab]
push eax
push 0x20
push 0x10008150
push 0x10008130
call fcn.100048d0
add esp, 0x10
mov ecx, dword [edi + 0x10]
mov esi, dword [ecx + 4]
test esi, esi
je 0x10001bb1
mov dword [esp + 8], eax
mov dword [esp], ebp
push 0x400
call sub.msvcrt.dll_malloc
pop ecx
mov ebp, eax
push esi
push 0
push 1
call dword [sym.imp.KERNEL32.dll_OpenProcess]
test eax, eax
je 0x10001c46
mov dword [esp], ebx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ebx, eax
call fcn.10004818
test ebx, ebx
je 0x10001c4b
push esi
push dword [esp + 0xc]
jmp 0x10001c50
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 0x18]
mov ebp, dword [eax + 0x14]
mov edx, dword [eax + 0xc]
mov dword [esp], edx
mov eax, dword [eax + 0x10]
mov dword [esp + 8], eax
mov ebx, dword [esi + 0x444]
xor esi, esi
dec esi
cmp dword [ebx + esi*4 + 4], 0
lea esi, [esi + 1]
je 0x10001917
cmp esi, 0x400
jb 0x10001905
cmp esi, 0x3ff
ja 0x10001cff
push 0x10
mov dword [esp + 0x18], ebp
mov ebp, ecx
call sub.msvcrt.dll_malloc
mov ecx, ebp
mov ebp, dword [esp + 0x18]
add esp, 4
mov dword [ebx + esi*4], eax
test eax, eax
je 0x10001cff
push ecx
mov dword [esp + 0x14], ecx
call sub.msvcrt.dll_malloc
pop ecx
mov ecx, dword [ebx + esi*4]
mov dword [ecx + 8], eax
mov ecx, dword [ebx + esi*4]
mov eax, dword [ecx + 8]
test eax, eax
je 0x10001cf8
mov ecx, dword [esp + 0x10]
push ecx
mov edx, ebp
mov ebp, ecx
push edx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + esi*4]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp]
push ebp
call sub.msvcrt.dll__strdup
pop ecx
mov ecx, dword [ebx + esi*4]
mov dword [ecx], eax
mov eax, dword [ebx + esi*4]
mov ecx, dword [esp + 8]
mov dword [eax + 4], ecx
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 4]
push dword [esi + 0x44c]
push dword [esi + 0x448]
call fcn.10004896
pop eax
pop ecx
lea eax, [esp + 0x5c]
push eax
push 0xf
push 0x10008022
push 0x10008013
call fcn.100048d0
add esp, 0x10
mov ecx, esi
xor edx, edx
push eax
call fcn.100036dd
pop eax
jmp 0x10001d2b
mov eax, dword [edi + 0x10]
mov ecx, esi
xor edx, edx
push dword [eax + 4]
jmp 0x10001b51
mov ebx, dword [esi + 0x34]
mov dword [esi + 0x38], ebx
push 0x400
call sub.msvcrt.dll_malloc
pop ecx
mov dword [esp], eax
mov eax, dword [edi + 0x10]
cmp byte [eax + 4], 0
lea eax, [eax + 8]
mov ecx, dword [esp + 0xa4]
cmovne eax, ecx
mov ebp, dword [eax]
mov dword [esi + 0x34], ebp
mov eax, dword [edi + 0x10]
cmp byte [eax + 0xc], 0
je 0x10001bf3
lea eax, [esp + 0x5c]
push eax
push 0x2c
push 0x1000818c
push 0x10008160
mov ebx, ecx
call fcn.100048d0
add esp, 0x10
mov dword [esp + 8], eax
mov dword [ebx], ebp
call fcn.10004818
push dword [ebx]
push dword [esp + 0xc]
mov ebx, dword [esp + 8]
push ebx
call eax
add esp, 0xc
jmp 0x10001c22
lea eax, [esp + 0x5c]
push eax
push 0x28
push 0x100080c8
push 0x100080a0
call fcn.100048d0
add esp, 0x10
mov ebx, eax
mov eax, dword [edi + 0x10]
mov edx, dword [eax + 4]
mov ecx, esi
call fcn.100029e3
test eax, eax
je 0x10001cc1
mov eax, dword [eax + 4]
test eax, eax
je 0x10001b0b
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x10001b0b
push eax
call ecx
jmp 0x10001c6b
push 0x20
call sub.msvcrt.dll_malloc
pop ecx
mov ebx, eax
push ebp
call sub.msvcrt.dll__strdup
pop ecx
mov dword [ebx], eax
mov eax, dword [esp]
mov dword [ebx + 4], eax
mov ecx, dword [esp + 0x24]
mov dword [ebx + 0x1c], ecx
mov ecx, dword [esp + 0x28]
mov dword [ebx + 0x18], ecx
test eax, eax
mov dword [esp + 0x1c], ebp
je 0x10001c6e
lea eax, [eax*4]
push eax
call sub.msvcrt.dll_malloc
pop ecx
mov dword [ebx + 8], eax
xor ebp, ebp
cmp dword [esp], ebp
je 0x10001c72
mov eax, dword [esp + 8]
push dword [eax + ebp*4]
call sub.msvcrt.dll__strdup
pop ecx
mov ecx, dword [ebx + 8]
mov dword [ecx + ebp*4], eax
inc ebp
jmp 0x10001aec
mov ecx, esi
xor edx, edx
inc edx
push ebx
jmp 0x10001b51
mov ecx, dword [esp + 4]
xor edx, edx
inc edx
push dword [esp]
call fcn.100036dd
pop eax
mov esi, dword [esp + 4]
jmp 0x10001cc1
mov dword [esp + 8], eax
mov ecx, dword [esi + 0x444]
mov edx, ebx
push dword [ebp + 8]
call fcn.10003f97
pop ecx
test eax, eax
je 0x10001785
mov ecx, esi
xor edx, edx
push dword [esp + 8]
call fcn.100036dd
jmp 0x10001c6b
mov ecx, dword [esi + 0x444]
mov edx, ebp
push dword [eax + 8]
call fcn.10003f97
pop ecx
test eax, eax
je 0x100017fe
mov ecx, esi
mov edx, ebp
push dword [esp + 0x24]
push dword [esp + 0x2c]
push dword [esp + 0x28]
push dword [esp + 0x1c]
push dword [esp + 0x18]
push dword [esp + 0x14]
call fcn.100041c4
add esp, 0x18
jmp 0x10001cc1
mov esi, dword [esp + 4]
mov ecx, esi
mov edx, ebx
push eax
call fcn.100036dd
pop eax
jmp 0x10001ca8
lea eax, [esp + 0x5c]
push eax
push 0x32
push 0x10008292
push 0x10008260
call fcn.100048d0
add esp, 0x10
mov esi, dword [esp + 4]
mov ecx, esi
xor edx, edx
push 1
push eax
push 0
call fcn.10003701
add esp, 0xc
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [esi + 4], 0
jmp 0x10001cc1
lea eax, [esp + 0x5c]
push eax
push 0x33
push 0x100081c3
push 0x10008190
call fcn.100048d0
add esp, 0x10
mov ebp, eax
call fcn.10004818
push ebx
push dword [esi + 0x34]
push ebp
mov ebx, dword [esp + 0xc]
push ebx
call eax
add esp, 0x10
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x34]
mov edx, 0x3e8
cmp ecx, edx
cmovae ecx, edx
mov dword [eax + 0xc000a4], ecx
mov ecx, esi
xor edx, edx
push ebx
call fcn.100036dd
pop eax
push ebx
jmp 0x10001c66
call fcn.10004818
push esi
push dword [esp + 4]
push ebp
call eax
add esp, 0xc
mov esi, dword [esp + 4]
mov ecx, esi
xor edx, edx
push ebp
call fcn.100036dd
pop eax
push ebp
call sub.msvcrt.dll_free
pop eax
jmp 0x10001cc1
and dword [ebx + 8], 0
mov ebp, dword [esp + 0x10]
mov dword [ebx + 0xc], ebp
test ebp, ebp
je 0x10001c97
push ebp
call sub.msvcrt.dll_malloc
pop ecx
mov dword [ebx + 0x10], eax
push ebp
push dword [esp + 0x24]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x10001c9b
and dword [ebx + 0x10], 0
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 4]
mov dword [eax + esi*4], ebx
mov esi, eax
mov eax, dword [esp + 0x14]
mov ecx, esi
push 2
pop edx
push eax
call fcn.100036dd
pop eax
mov ecx, esi
mov edx, ebp
call fcn.10003680
mov ecx, dword [edi]
call fcn.100037b0
push dword [esp + 0xc]
call sub.msvcrt.dll_free
pop eax
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x30]
mov edx, dword [esp + 0x2c]
sub ecx, edx
mov dword [esi + 0x30], ecx
add edx, eax
push ecx
push edx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, esi
mov esi, dword [esi + 0x30]
jmp 0x10001126
push ecx
call sub.msvcrt.dll_free
pop eax
lea eax, [esp + 0x5c]
push eax
push 0x18
push 0x10008048
push 0x10008030
call fcn.100048d0
add esp, 0x10
mov esi, dword [esp + 4]
mov ecx, esi
xor edx, edx
inc edx
push eax
call fcn.100036dd
pop eax
mov ebp, dword [esp]
push 0x11
pop ebx
cmp ebx, 0x111
je 0x10001cc1
mov eax, dword [esi + ebx*4]
test eax, eax
je 0x10001d4b
push ebp
push dword [eax]
call sub.msvcrt.dll_strcmp
pop ecx
pop edx
test eax, eax
je 0x10001d4e
inc ebx
jmp 0x10001d2e
mov eax, dword [esi + ebx*4]
mov edx, dword [eax]
movups xmm0, xmmword [eax + 4]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
sub esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
movups xmmword [esp], xmm0
mov ecx, esi
call fcn.100041c4
add esp, 0x18
mov esi, dword [esi + ebx*4]
push dword [esi]
call sub.msvcrt.dll_free
pop eax
mov eax, dword [esi + 4]
test eax, eax
je 0x10001da7
xor ebp, ebp
mov ecx, dword [esi + 8]
cmp ebp, eax
jae 0x10001da0
push dword [ecx + ebp*4]
call sub.msvcrt.dll_free
pop eax
inc ebp
mov eax, dword [esi + 4]
jmp 0x10001d8a
push ecx
call sub.msvcrt.dll_free
pop eax
cmp dword [esi + 0xc], 0
je 0x10001db6
push dword [esi + 0x10]
call sub.msvcrt.dll_free
pop eax
push esi
call sub.msvcrt.dll_free
pop eax
mov esi, dword [esp + 4]
and dword [esi + ebx*4], 0
jmp 0x10001cc1
push edi
call sub.msvcrt.dll_free
pop eax
mov eax, dword [esp + 0x18]
add esp, 0xf4
pop esi
pop edi
pop ebx
pop ebp
ret