Function at 0x10017620
Capabilities:
Create thread
Terminate thread

Disassembly:
sub esp, 0x40
mov eax, dword [0x100644ac]
xor eax, esp
mov dword [esp + 0x3c], eax
mov ecx, 2
cmp dword [0x1006b030], ecx
jne 0x1001764e
xor eax, eax
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.100248f3
add esp, 0x40
ret 8
movzx edx, byte [0x10068404]
mov eax, dword [esp + 0x44]
push ebx
push esi
xor ebx, ebx
xor esi, esi
cmp eax, edx
jne 0x1001769b
cmp dword [0x100683ec], ebx
push 1
je 0x10017682
push 0x1003853c
mov dword [0x100683ec], ebx
call fcn.10001160
jmp 0x10018428
push 0x1003852c
mov dword [0x100683ec], 1
call fcn.10001160
jmp 0x10018428
movzx edx, byte [0x10068408]
cmp eax, edx
jne 0x100176de
cmp dword [0x100683f0], ebx
push 1
je 0x100176c5
push 0x1003851c
mov dword [0x100683f0], ebx
call fcn.10001160
jmp 0x10018428
push 0x1003850c
mov dword [0x100683f0], 1
call fcn.10001160
jmp 0x10018428
movzx edx, byte [0x10067fe0]
cmp eax, edx
jne 0x100176f9
mov dword [0x1006831c], ebx
call fcn.10015730
jmp 0x10018428
movzx edx, byte [0x10067fdc]
cmp eax, edx
jne 0x1001773d
mov eax, dword [0x10067dbc]
test eax, eax
push 1
je 0x10017724
push 0x10038504
mov dword [0x10067dbc], ebx
call fcn.10001160
jmp 0x10018428
push 0x100384fc
mov dword [0x10067dbc], 1
call fcn.10001160
jmp 0x10018428
movzx edx, byte [0x10067fb0]
cmp eax, edx
jne 0x100177b4
cmp dword [0x100683b4], ebx
push 1
je 0x10017781
push 0x100384f0
mov dword [0x100683b4], ebx
call fcn.10001160
mov esi, 1
call fcn.100035e0
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.100248f3
add esp, 0x40
ret 8
push 0x100384e4
mov dword [0x100683b4], 1
call fcn.10001160
mov esi, 1
call fcn.100035e0
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.100248f3
add esp, 0x40
ret 8
movzx edx, byte [0x10067fe8]
cmp eax, edx
jne 0x100177f7
cmp dword [0x1006852c], ebx
push 1
je 0x100177de
push 0x100384d8
mov dword [0x1006852c], ebx
call fcn.10001160
jmp 0x10018428
push 0x100384cc
mov dword [0x1006852c], 1
call fcn.10001160
jmp 0x10018428
movzx edx, byte [0x10067fec]
cmp eax, edx
jne 0x1001783a
cmp dword [0x10068528], ebx
push 1
je 0x10017821
push 0x100384c4
mov dword [0x10068528], ebx
call fcn.10001160
jmp 0x10018428
push 0x100384bc
mov dword [0x10068528], 1
call fcn.10001160
jmp 0x10018428
movzx edx, byte [0x10067ff0]
cmp eax, edx
jne 0x1001784f
call fcn.10015800
jmp 0x10018428
movzx edx, byte [0x10067fb4]
cmp eax, edx
jne 0x10017864
call fcn.10015660
jmp 0x10018428
movzx edx, byte [0x100683b0]
cmp eax, edx
jne 0x100178b1
cmp dword [0x10068380], ebx
push 1
je 0x10017893
push 0x100384b0
mov dword [0x10068380], ebx
call fcn.10001160
call fcn.100035e0
jmp 0x10018428
push 0x100384a4
mov dword [0x10068380], 1
call fcn.10001160
call fcn.100035e0
jmp 0x10018428
movzx edx, byte [0x100683c4]
cmp eax, edx
jne 0x1001792f
call fcn.10020710
push eax
call fcn.10020860
mov eax, dword [0x100683ac]
lea ecx, [eax + 1]
lea esi, [eax + 7]
cmp ecx, esi
jae 0x10018428
lea ebx, [ebx]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 2
lea eax, [edx + edx*2]
add eax, eax
mov edx, ecx
sub edx, eax
mov eax, dword [edx*4 + 0x10068384]
lea eax, [eax + eax*2]
cmp word [eax*4 + 0x10068338], bx
jne 0x10017913
add ecx, 1
cmp ecx, esi
jb 0x100178e0
jmp 0x10018428
mov eax, 0xaaaaaaab
mul ecx
shr edx, 2
lea edx, [edx + edx*2]
add edx, edx
sub ecx, edx
mov dword [0x100683ac], ecx
jmp 0x10018428
movzx edx, byte [0x10068058]
cmp eax, edx
jne 0x1001797a
mov al, byte [0x100659d1]
test al, al
push 1
je 0x1001795f
push 0x1003849c
mov byte [0x100659d1], bl
call fcn.10001160
call fcn.10008ad0
jmp 0x10018428
push 0x10038494
mov byte [0x100659d1], 1
call fcn.10001160
call fcn.10008ad0
jmp 0x10018428
movzx edx, byte [0x1006806c]
cmp eax, edx
jne 0x100179e7
mov esi, 1
cmp dword [0x1006831c], esi
push esi
jne 0x100179bd
push 0x1003848c
mov dword [0x1006831c], ebx
call fcn.10001160
call fcn.10008ad0
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.100248f3
add esp, 0x40
ret 8
push 0x10038484
mov dword [0x1006831c], esi
call fcn.10001160
call fcn.10008ad0
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.100248f3
add esp, 0x40
ret 8
movzx edx, byte [0x10068070]
cmp eax, edx
jne 0x10017ab3
cmp byte [0x100683a7], bl
jne 0x10017a38
cmp dword [0x100683c8], ebx
jne 0x10017a7c
push 1
push 0x10038474
mov byte [0x100683a7], 1
call fcn.10001160
mov esi, 1
call fcn.100035e0
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.100248f3
add esp, 0x40
ret 8
cmp dword [0x100683c8], ebx
jne 0x10017a7c
push 1
push 0x10038464
mov byte [0x100683a7], 1
mov dword [0x100683c8], 1
call fcn.10001160
mov esi, 1
call fcn.100035e0
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.100248f3
add esp, 0x40
ret 8
push 1
push 0x10038458
mov byte [0x100683a7], bl
mov dword [0x100683c8], ebx
call fcn.10001160
mov esi, 1
call fcn.100035e0
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.100248f3
add esp, 0x40
ret 8
movzx edx, byte [0x10068060]
cmp eax, edx
jne 0x10017b16
mov esi, 1
cmp dword [0x100682b0], esi
push esi
jne 0x10017af1
push 0x1003844c
mov dword [0x100682b0], ebx
call fcn.10001160
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.100248f3
add esp, 0x40
ret 8
push 0x100373f4
mov dword [0x100682b0], esi
call fcn.10001160
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.100248f3
add esp, 0x40
ret 8
movzx edx, byte [0x10068068]
cmp eax, edx
jne 0x10017b62
push 7
call fcn.10001020
test eax, eax
je 0x10018428
cmp dword [0x100688d8], ebx
jne 0x10018428
push ebx
push ebx
push ebx
push 0x100235a0
push ebx
push ebx
mov dword [0x100688d8], 1
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x10018428
movzx edx, byte [0x10068064]
cmp eax, edx
jne 0x10017bc5
mov esi, 1
cmp dword [0x10068294], esi
push esi
jne 0x10017ba0
push 0x10038440
mov dword [0x10068294], ebx
call fcn.10001160
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.100248f3
add esp, 0x40
ret 8
push 0x10038434
mov dword [0x10068294], esi
call fcn.10001160
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.100248f3
add esp, 0x40
ret 8
movzx edx, byte [0x1006805c]
cmp eax, edx
jne 0x10017c73
mov eax, dword [0x100682a8]
cmp eax, 5
je 0x10017c58
cmp eax, 1
jne 0x10017bf9
push eax
push 0x10038424
mov dword [0x100682a8], ecx
call fcn.10001160
jmp 0x10018428
cmp eax, ecx
jne 0x10017c18
push 1
push 0x10038414
mov dword [0x100682a8], 3
call fcn.10001160
jmp 0x10018428
cmp eax, 3
jne 0x10017c38
push 1
push 0x10038404
mov dword [0x100682a8], 4
call fcn.10001160
jmp 0x10018428
cmp eax, 4
jne 0x10017c58
push 1
push 0x100383f4
mov dword [0x100682a8], 5
call fcn.10001160
jmp 0x10018428
push 1
push 0x100383e4
mov dword [0x100682a8], 1
call fcn.10001160
jmp 0x10018428
movzx ecx, byte [0x10068054]
cmp eax, ecx
jne 0x10017cb6
cmp dword [0x10068318], ebx
push 1
je 0x10017c9d
push 0x100383d8
mov dword [0x10068318], ebx
call fcn.10001160
jmp 0x10018428
push 0x100383cc
mov dword [0x10068318], 1
call fcn.10001160
jmp 0x10018428
movzx edx, byte [0x10067fd4]
cmp eax, edx
jne 0x10017cf9
cmp dword [0x100683dc], ebx
push 1
je 0x10017ce0
push 0x100383c0
mov dword [0x100683dc], ebx
call fcn.10001160
jmp 0x10018428
push 0x100383b4
mov dword [0x100683dc], 1
call fcn.10001160
jmp 0x10018428
movzx ecx, byte [0x10067fd8]
cmp eax, ecx
jne 0x10017d3c
cmp dword [0x10068578], ebx
push 1
je 0x10017d23
push 0x100383a8
mov dword [0x10068578], ebx
call fcn.10001160
jmp 0x10018428
push 0x1003839c
mov dword [0x10068578], 1
call fcn.10001160
jmp 0x10018428
movzx edx, byte [0x10067fe4]
cmp eax, edx
jne 0x10017da9
cmp dword [0x10068590], ebx
je 0x10017d74
mov eax, dword [0x10067e94]
push 1
push eax
mov dword [0x10068590], ebx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push 1
push 0x10038390
call fcn.10001160
jmp 0x10018428
call fcn.1001a0b0
push ebx
push ebx
push ebx
push 0x100072d0
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 1
push 0x10038384
mov dword [0x10067e94], eax
mov dword [0x10068590], 1
call fcn.10001160
jmp 0x10018428
movzx ecx, byte [0x1006804c]
cmp eax, ecx
jne 0x10017dec
cmp dword [0x10068314], ebx
push 1
je 0x10017dd3
push 0x10038378
mov dword [0x10068314], ebx
call fcn.10001160
jmp 0x10018428
push 0x1003836c
mov dword [0x10068314], 1
call fcn.10001160
jmp 0x10018428
movzx edx, byte [0x10068050]
cmp eax, edx
jne 0x10017e4e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x10067c8c], ebx
mov dword [0x10067c14], eax
mov dword [0x10067c18], eax
mov dword [0x10067c1c], eax
mov dword [0x10067c20], eax
mov dword [0x10067c24], eax
push 1
je 0x10017e35
push 0x10038364
mov dword [0x10067c8c], ebx
call fcn.10001160
jmp 0x10018428
push 0x1003835c
mov dword [0x10067c8c], 1
call fcn.10001160
jmp 0x10018428
movzx ecx, byte [0x10068048]
cmp eax, ecx
jne 0x10017e6f
push 1
push 0x10038350
call fcn.10001160
call fcn.10015520
jmp 0x10018428
movzx edx, byte [0x10068030]
cmp eax, edx
jne 0x10017e90
push 1
push 0x10038344
call fcn.10001160
call fcn.10002850
jmp 0x10018428
movzx ecx, byte [0x1006802c]
cmp eax, ecx
jne 0x10017eb1
push 1
push 0x10038338
call fcn.10001160
call fcn.10005e10
jmp 0x10018428
movzx edx, byte [0x10068024]
cmp eax, edx
jne 0x10017ed2
push 1
push 0x10038330
call fcn.10001160
call fcn.1001cad0
jmp 0x10018428
movzx ecx, byte [0x10068040]
cmp eax, ecx
jne 0x10017ef5
push 1
push 0x10038324
call fcn.10001160
push 1
call fcn.1001dad0
jmp 0x10018428
movzx edx, byte [0x10068044]
cmp eax, edx
jne 0x10017f1b
push 1
push 0x10037358
call fcn.10001160
push 0xec1b
call fcn.1001e480
jmp 0x10018428
movzx ecx, byte [0x10068028]
cmp eax, ecx
jne 0x10017f4e
push 1
push 0x10038318
call fcn.10001160
cmp byte [0x1006840d], bl
sete al
movzx edx, al
push edx
mov byte [0x1006840d], al
call fcn.10001810
jmp 0x10018428
movzx ecx, byte [0x10068034]
cmp eax, ecx
jne 0x10017f7c
push 1
push 0x10038310
call fcn.10001160
cmp byte [0x100683a8], bl
setne dl
add dl, 1
push edx
call fcn.1001cd60
jmp 0x10018428
movzx ecx, byte [0x10068038]
cmp eax, ecx
jne 0x10018033
mov eax, dword [0x10068704]
sub eax, 3
push ebx
je 0x10017ff0
sub eax, 1
je 0x10017fdb
push 0x100377b8
call fcn.10001160
cmp dword [0x1005d3a4], 0x10
mov ecx, dword [0x1005d390]
mov dword [0x10068704], 3
jae 0x10017fc3
mov ecx, 0x1005d390
mov edx, 0x10068638
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
cmp al, bl
jne 0x10017fc8
jmp 0x10018428
push 0x100377a0
call fcn.10001160
mov dword [0x10068704], ebx
jmp 0x10018428
push 0x100377ac
call fcn.10001160
cmp dword [0x1005d3dc], 0x10
mov ecx, dword [0x1005d3c8]
mov dword [0x10068704], 4
jae 0x10018018
mov ecx, 0x1005d3c8
mov edx, 0x10068638
lea ecx, [ecx]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
cmp al, bl
jne 0x10018020
jmp 0x10018428
movzx edx, byte [0x1006803c]
cmp eax, edx
jne 0x1001808c
cmp byte [0x1006840c], bl
je 0x10018068
push ebx
mov byte [0x1006840c], bl
call fcn.100045f0
push 1
push 0x10038308
call fcn.10001160
call fcn.10008ad0
jmp 0x10018428
push 1
mov byte [0x1006840c], 1
call fcn.100045f0
push 1
push 0x10038300
call fcn.10001160
call fcn.10008ad0
jmp 0x10018428
movzx ecx, byte [0x10068020]
cmp eax, ecx
jne 0x100180be
push 1
push 0x100382f8
call fcn.10001160
cmp byte [0x100683a8], bl
je 0x100180b2
push 3
call fcn.1001cc80
push 3
call fcn.1001cb80
jmp 0x10018428
movzx edx, byte [0x10068010]
cmp eax, edx
jne 0x10018107
push 0x3b
lea eax, [esp + 0xd]
push ebx
push eax
call fcn.10024d90
lea ecx, [esp + 0x16]
push 0x100382e8
push ecx
mov byte [esp + 0x1c], 3
mov byte [esp + 0x1d], 7
call fcn.100256a8
add esp, 0x14
push 3
lea edx, [esp + 0xc]
push edx
mov byte [esp + 0x4b], bl
call fcn.1001dcf0
jmp 0x10018428
movzx ecx, byte [0x10067ff8]
cmp eax, ecx
jne 0x10018128
push ebx
push 0x100382dc
call fcn.10001160
push ebx
call fcn.1001dad0
jmp 0x10018428
movzx edx, byte [0x10067ffc]
cmp eax, edx
jne 0x1001815e
push ebx
push 0x100382d0
call fcn.10001160
xor eax, eax
cmp dword [0x1006830c], ebx
sete al
cmp eax, ebx
mov dword [0x1006830c], eax
setne al
push eax
call fcn.10008c50
jmp 0x10018428
movzx ecx, byte [0x10067fbc]
cmp eax, ecx
jne 0x10018178
push 0x2b5d
call fcn.10013700
jmp 0x10018428
movzx edx, byte [0x10067fc0]
cmp eax, edx
jne 0x10018192
push 0x2b62
call fcn.10013700
jmp 0x10018428
movzx ecx, byte [0x10067fc4]
cmp eax, ecx
jne 0x100181ac
push 0x2bcb
call fcn.10013700
jmp 0x10018428
movzx edx, byte [0x10067fc8]
cmp eax, edx
jne 0x100181c6
push 0x2bc6
call fcn.10013700
jmp 0x10018428
movzx ecx, byte [0x10067fcc]
cmp eax, ecx
jne 0x100181e0
push 0x2bc1
call fcn.10013700
jmp 0x10018428
movzx edx, byte [0x10067fd0]
cmp eax, edx
jne 0x100181fa
push 0x2b67
call fcn.10013700
jmp 0x10018428
movzx ecx, byte [0x100683d4]
cmp eax, ecx
jne 0x1001820f
call fcn.1001a0b0
jmp 0x10018428
movzx edx, byte [0x1006825c]
cmp eax, edx
jne 0x1001823d
mov ecx, dword [0x10067dbc]
test ecx, ecx
je 0x1001823d
cmp dword [0x10068258], ebx
je 0x1001823d
mov edx, dword [0x10067cd0]
push edx
call fcn.10022ab0
jmp 0x10018428
movzx ecx, byte [0x10068268]
cmp eax, ecx
jne 0x1001826a
mov edx, dword [0x10067dbc]
test edx, edx
je 0x1001826a
cmp dword [0x10068264], ebx
je 0x1001826a
mov eax, dword [0x10067cd4]
push eax
call fcn.10022ab0
jmp 0x10018428
movzx ecx, byte [0x10068274]
cmp eax, ecx
jne 0x10018297
mov edx, dword [0x10067dbc]
test edx, edx
je 0x10018297
cmp dword [0x10068270], ebx
je 0x10018297
mov eax, dword [0x10067cd8]
push eax
call fcn.10022ab0
jmp 0x10018428
movzx ecx, byte [0x10068280]
cmp eax, ecx
jne 0x100182c4
mov edx, dword [0x10067dbc]
test edx, edx
je 0x100182c4
cmp dword [0x1006827c], ebx
je 0x100182c4
mov eax, dword [0x10067cdc]
push eax
call fcn.10022ab0
jmp 0x10018428
movzx ecx, byte [0x1006828c]
cmp eax, ecx
jne 0x100182f1
mov edx, dword [0x10067dbc]
test edx, edx
je 0x100182f1
cmp dword [0x10068288], ebx
je 0x100182f1
mov eax, dword [0x10067ce0]
push eax
call fcn.10022ab0
jmp 0x10018428
movzx ecx, byte [0x1006807c]
cmp eax, ecx
jne 0x1001835e
mov edx, dword [0x10067dbc]
test edx, edx
je 0x1001835e
cmp dword [0x10068078], ebx
je 0x1001835e
mov eax, dword [0x10067e98]
mov ecx, dword [eax*4 + 0x10067cac]
add eax, 1
push ecx
mov dword [0x10067e98], eax
call fcn.10022a80
mov eax, dword [0x10067e98]
cmp eax, 3
jne 0x10018339
xor eax, eax
mov dword [0x10067e98], eax
mov eax, dword [eax*4 + 0x10067cac]
push eax
call fcn.10022a80
cmp dword [0x10067e98], 3
jne 0x10018428
mov dword [0x10067e98], ebx
jmp 0x10018428
movzx ecx, byte [0x1006811c]
cmp eax, ecx
jne 0x100183c4
mov edx, dword [0x10067dbc]
test edx, edx
je 0x100183c4
cmp dword [0x10068118], ebx
je 0x100183c4
mov eax, dword [0x10067e9c]
mov ecx, dword [eax*4 + 0x10067cb8]
add eax, 1
push ecx
mov dword [0x10067e9c], eax
call fcn.10022a80
mov eax, dword [0x10067e9c]
cmp eax, 3
jne 0x100183a6
xor eax, eax
mov dword [0x10067e9c], eax
mov eax, dword [eax*4 + 0x10067cb8]
push eax
call fcn.10022a80
cmp dword [0x10067e9c], 3
jne 0x10018428
mov dword [0x10067e9c], ebx
jmp 0x10018428
movzx ecx, byte [0x100681bc]
cmp eax, ecx
jne 0x1001842d
mov edx, dword [0x10067dbc]
test edx, edx
je 0x1001842d
cmp dword [0x100681b8], ebx
je 0x1001842d
mov eax, dword [0x10067ea0]
mov ecx, dword [eax*4 + 0x10067cc4]
add eax, 1
push ecx
mov dword [0x10067ea0], eax
call fcn.10022a80
mov eax, dword [0x10067ea0]
cmp eax, 3
jne 0x1001840c
xor eax, eax
mov dword [0x10067ea0], eax
mov eax, dword [eax*4 + 0x10067cc4]
push eax
call fcn.10022a80
cmp dword [0x10067ea0], 3
jne 0x10018428
mov dword [0x10067ea0], ebx
mov esi, 1
mov ecx, dword [esp + 0x44]
mov eax, esi
pop esi
pop ebx
xor ecx, esp
call fcn.100248f3
add esp, 0x40
ret 8