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 + 0x14], 0
test ebp, ebp
mov edi, dword [esp + 0x14]
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 + 0x14], 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 + 0x14], 0
jmp 0x1000110d
mov dword [esp + 0x14], 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 0x10001dcb
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.1000611d
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 0x10001dcb
add ebp, eax
lea esi, [ebx + ebx]
imul eax, ebx, 0x3e8
mov dword [esp + 0x18], eax
push esi
call sub.msvcrt.dll_malloc
pop ecx
mov edi, eax
mov dword [esp + 0x10], 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 + 0x10]
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 + 0x18]
ja 0x10001dc4
push esi
push edi
call sub.msvcrt.dll_realloc
pop ecx
pop edx
mov edi, eax
jmp 0x10001180
cmp dword [esp + 0x2c], 0
je 0x10001dcb
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.100029a2
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.10006355
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.1000641c
mov dword [edi + 4], eax
jmp 0x10001599
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 0x10
lea ecx, [esp + 0x5c]
push 0x10002976
push 0x1000296a
push 4
jmp 0x10001590
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x5c]
call fcn.1000641c
mov dword [edi + 8], eax
jmp 0x10001599
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 1
lea ecx, [esp + 0x5c]
push 0x10001e01
push 0x10001dda
jmp 0x10001571
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 2
lea ecx, [esp + 0x5c]
push 0x10002385
push 0x10002332
jmp 0x1000158e
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 3
lea ecx, [esp + 0x5c]
push 0x10001f92
push 0x10001f04
push 0x28
jmp 0x10001590
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 4
lea ecx, [esp + 0x5c]
push 0x1000209f
push 0x1000207b
jmp 0x10001571
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 5
lea ecx, [esp + 0x5c]
push 0x10002104
push 0x100020e0
jmp 0x10001571
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 6
lea ecx, [esp + 0x5c]
push 0x1000228a
push 0x10002214
push 0x1c
jmp 0x10001590
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 7
lea ecx, [esp + 0x5c]
push 0x1000216c
push 0x10002145
jmp 0x10001571
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 8
lea ecx, [esp + 0x5c]
push 0x10001e96
push 0x10001e44
jmp 0x1000158e
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 9
lea ecx, [esp + 0x5c]
push 0x100021d3
push 0x100021af
jmp 0x10001571
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 0xa
lea ecx, [esp + 0x5c]
push 0x100027dc
push 0x10002771
push 0x18
jmp 0x10001590
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 0xb
lea ecx, [esp + 0x5c]
push 0x1000256a
push 0x100024ba
push 0x20
jmp 0x10001590
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 0xc
lea ecx, [esp + 0x5c]
push 0x1000272e
push 0x10002707
jmp 0x10001571
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 0xd
lea ecx, [esp + 0x5c]
push 0x10002448
push 0x100023f7
jmp 0x1000158e
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 0xe
lea ecx, [esp + 0x5c]
push 0x1000288e
push 0x1000286a
push 8
jmp 0x10001590
mov edx, dword [esp + 0x30]
mov dword [edi + 0xc], 0xf
lea ecx, [esp + 0x5c]
push 0x1000290c
push 0x100028cf
push 0x10
push ebx
call fcn.10006854
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.1000673f
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 0x100019cc
cmp eax, 8
je 0x100019db
cmp eax, 9
je 0x10001a50
cmp eax, 1
jne 0x10001d8d
lea eax, [esp + 0x5c]
push eax
push 0xb
push 0x100082cf
push 0x100082c4
call fcn.10004a60
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.100051bc
mov dword [esi + 0xc], eax
mov esi, dword [esp + 4]
mov ecx, esi
xor edx, edx
push ebp
jmp 0x10001b3d
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 0x10001dba
lea eax, [esp + 0x5c]
push eax
push 0x21
push 0x100084a1
push 0x10008480
call fcn.10004a60
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.10002b06
test eax, eax
je 0x10001d89
mov eax, dword [eax + 4]
test eax, eax
je 0x10001b03
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x10001b03
push esi
push ebp
push dword [esp + 0x10]
push ebx
push eax
call ecx
add esp, 0x14
jmp 0x10001d89
lea eax, [esp + 0x5c]
push eax
push 0x34
push 0x100084e4
push 0x100084b0
call fcn.10004a60
add esp, 0x10
mov dword [esp], eax
lea eax, [esp + 0x30]
push eax
push 0x19
push 0x10008509
push 0x100084f0
call fcn.10004a60
add esp, 0x10
mov ebp, dword [edi + 0x10]
mov ebx, dword [ebp + 4]
cmp byte [ebp + 0xc], 0
mov esi, dword [esp + 4]
je 0x10001b18
mov ecx, dword [esi + 0x444]
mov edx, ebx
call fcn.100040d5
mov ecx, esi
xor edx, edx
push dword [esp]
call fcn.10003771
pop eax
mov ecx, esi
mov edx, ebx
jmp 0x10001cab
lea eax, [esp + 0x5c]
push eax
push 0x45
push 0x10008345
push 0x10008300
call fcn.10004a60
add esp, 0x10
mov dword [esp + 0x10], 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 + 0x18], 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 0x10001b47
mov ecx, dword [esi + 0x444]
mov edx, ebp
call fcn.100040d5
lea eax, [esp + 0x30]
push eax
push 0x23
push 0x10008573
push 0x10008550
call fcn.10004a60
add esp, 0x10
push 0x11
pop esi
mov ecx, dword [esp + 4]
cmp dword [ecx + esi*4], 0
je 0x10001a96
cmp esi, 0x111
je 0x10001b89
inc esi
jmp 0x1000181a
lea eax, [esp + 0x30]
push eax
push 0x2a
push 0x100083aa
push 0x10008380
call fcn.10004a60
add esp, 0x10
mov ebp, eax
lea eax, [esp + 0xcb]
push eax
push 0x29
push 0x100083d9
push 0x100083b0
call fcn.10004a60
add esp, 0x10
mov ebx, eax
lea eax, [esp + 0xab]
push eax
push 0x20
push 0x10008400
push 0x100083e0
call fcn.10004a60
add esp, 0x10
mov ecx, dword [edi + 0x10]
mov esi, dword [ecx + 4]
test esi, esi
je 0x10001b9d
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 0x10001c32
mov dword [esp], ebx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ebx, eax
call fcn.100049a9
test ebx, ebx
je 0x10001c37
push esi
push dword [esp + 0xc]
jmp 0x10001c3c
mov eax, dword [edi + 0x10]
mov edx, dword [eax + 0x18]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, esi
mov esi, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 8], eax
mov ebx, dword [ecx + 0x444]
xor ebp, ebp
dec ebp
cmp dword [ebx + ebp*4 + 4], 0
lea ebp, [ebp + 1]
je 0x1000191a
cmp ebp, 0x400
jb 0x10001908
cmp ebp, 0x3ff
ja 0x10001cbc
push 0x10
mov dword [esp + 4], edx
call sub.msvcrt.dll_malloc
mov ecx, dword [esp + 4]
add esp, 4
mov dword [ebx + ebp*4], eax
test eax, eax
je 0x10001cbc
push ecx
call sub.msvcrt.dll_malloc
pop ecx
mov ecx, dword [ebx + ebp*4]
mov dword [ecx + 8], eax
mov ecx, dword [ebx + ebp*4]
mov eax, dword [ecx + 8]
test eax, eax
je 0x10001cb5
push dword [esp]
push dword [esp + 0x14]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + ebp*4]
mov ecx, dword [esp]
mov dword [eax + 0xc], ecx
push esi
call sub.msvcrt.dll__strdup
pop ecx
mov ecx, dword [ebx + ebp*4]
mov dword [ecx], eax
mov eax, dword [ebx + ebp*4]
mov ecx, dword [esp + 8]
mov dword [eax + 4], ecx
mov ecx, dword [eax + 8]
mov edx, dword [esp]
mov ebx, dword [esp + 4]
push dword [ebx + 0x44c]
push dword [ebx + 0x448]
call fcn.10004a27
pop eax
pop ecx
lea eax, [esp + 0x5c]
push eax
push 0xf
push 0x100082df
push 0x100082d0
call fcn.10004a60
add esp, 0x10
mov ecx, ebx
xor edx, edx
jmp 0x10001cdc
mov eax, dword [edi + 0x10]
mov ecx, esi
xor edx, edx
push dword [eax + 4]
jmp 0x10001b3d
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 0x10001bdf
lea eax, [esp + 0x5c]
push eax
push 0x2c
push 0x1000843c
push 0x10008410
mov ebx, ecx
call fcn.10004a60
add esp, 0x10
mov dword [esp + 8], eax
mov dword [ebx], ebp
call fcn.100049a9
push dword [ebx]
push dword [esp + 0xc]
mov ebx, dword [esp + 8]
push ebx
call eax
add esp, 0xc
jmp 0x10001c0e
lea eax, [esp + 0x5c]
push eax
push 0x28
push 0x10008378
push 0x10008350
call fcn.10004a60
add esp, 0x10
mov ebx, eax
mov eax, dword [edi + 0x10]
mov edx, dword [eax + 4]
mov ecx, esi
call fcn.10002b06
test eax, eax
je 0x10001d8d
mov eax, dword [eax + 4]
test eax, eax
je 0x10001afb
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x10001afb
push eax
call ecx
jmp 0x10001c57
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 0x10001c5d
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 0x10001c61
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 0x10001adc
mov ecx, esi
xor edx, edx
inc edx
push ebx
jmp 0x10001b3d
mov ecx, dword [esp + 4]
xor edx, edx
inc edx
push dword [esp]
call fcn.10003771
pop eax
jmp 0x10001d89
mov dword [esp + 8], eax
mov ecx, dword [esi + 0x444]
mov edx, ebx
push dword [ebp + 8]
call fcn.10004126
pop ecx
test eax, eax
je 0x10001785
mov ecx, esi
xor edx, edx
push dword [esp + 8]
call fcn.10003771
jmp 0x10001c57
mov ecx, dword [esi + 0x444]
mov edx, ebp
push dword [eax + 8]
call fcn.10004126
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 + 0x24]
push dword [esp + 0x18]
push dword [esp + 0x14]
call fcn.10004353
add esp, 0x18
jmp 0x10001d8d
mov esi, dword [esp + 4]
mov ecx, esi
mov edx, ebx
push eax
call fcn.10003771
pop eax
jmp 0x10001c97
lea eax, [esp + 0x5c]
push eax
push 0x32
push 0x10008542
push 0x10008510
call fcn.10004a60
add esp, 0x10
mov esi, dword [esp + 4]
mov ecx, esi
xor edx, edx
push 1
push eax
push 0
call fcn.10003795
add esp, 0xc
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [esi + 4], 0
jmp 0x10001d8d
lea eax, [esp + 0x5c]
push eax
push 0x33
push 0x10008473
push 0x10008440
call fcn.10004a60
add esp, 0x10
mov ebp, eax
call fcn.100049a9
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.10003771
pop eax
push ebx
jmp 0x10001c52
call fcn.100049a9
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.10003771
pop eax
push ebp
call sub.msvcrt.dll_free
pop eax
jmp 0x10001d8d
and dword [ebx + 8], 0
mov ebp, dword [esp + 0x18]
mov dword [ebx + 0xc], ebp
test ebp, ebp
je 0x10001c86
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 0x10001c8a
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 + 0x10]
mov ecx, esi
push 2
pop edx
push eax
call fcn.10003771
pop eax
mov ecx, esi
mov edx, ebp
call fcn.10003714
jmp 0x10001d8d
push ecx
call sub.msvcrt.dll_free
pop eax
lea eax, [esp + 0x5c]
push eax
push 0x18
push 0x100082f8
push 0x100082e0
call fcn.10004a60
add esp, 0x10
mov ecx, dword [esp + 4]
xor edx, edx
inc edx
push eax
call fcn.10003771
pop eax
push 0x11
pop ebx
cmp ebx, 0x111
je 0x10001d89
mov eax, dword [esp + 4]
mov eax, dword [eax + ebx*4]
test eax, eax
je 0x10001d0b
push esi
push dword [eax]
call sub.msvcrt.dll_strcmp
pop ecx
pop edx
test eax, eax
je 0x10001d0e
inc ebx
jmp 0x10001ce6
mov esi, dword [esp + 4]
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.10004353
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 0x10001d6b
xor ebp, ebp
mov ecx, dword [esi + 8]
cmp ebp, eax
jae 0x10001d64
push dword [ecx + ebp*4]
call sub.msvcrt.dll_free
pop eax
inc ebp
mov eax, dword [esi + 4]
jmp 0x10001d4e
push ecx
call sub.msvcrt.dll_free
pop eax
cmp dword [esi + 0xc], 0
je 0x10001d7a
push dword [esi + 0x10]
call sub.msvcrt.dll_free
pop eax
push esi
call sub.msvcrt.dll_free
pop eax
mov eax, dword [esp + 4]
and dword [eax + ebx*4], 0
mov esi, dword [esp + 4]
mov ecx, dword [edi]
call fcn.10003844
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 edi
call sub.msvcrt.dll_free
pop eax
mov eax, dword [esp + 0x14]
add esp, 0xf4
pop esi
pop edi
pop ebx
pop ebp
ret