Function at 0x10018770
Capabilities:
Create udp socket
Encode data using xor
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10041a1e
mov eax, dword fs:[0]
push eax
mov eax, 0x1520
call fcn.1003f4d0
mov eax, dword [0x10051040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [0x1005c3a8], 0
je 0x1001956c
cmp dword [0x1005c3d0], 0
jne 0x1001956c
test dword [0x1005c3d8], 0x1000
jne 0x1001956c
mov edx, dword [0x100524bc]
cmp byte [edx + 0x40], 0
je 0x10018a10
mov eax, dword [edx + 0x44]
add eax, dword [edx + 0x30]
movzx ecx, word [eax]
sub ecx, 4
je 0x100189fe
sub ecx, 1
je 0x100189df
mov byte [ebp - 0x14cc], 0xf
mov edi, 2
mov byte [ebp - 0x14cb], 1
mov byte [ebp - 0x14ca], 0x16
mov byte [ebp - 0x14c9], 0x16
mov byte [ebp - 0x14c8], 0xe9
mov byte [ebp - 0x14c7], 0xd2
mov al, byte [ebp - 0x14cc]
mov ecx, 0x2e5
mov dword [ebp - 4], 0
xor edx, edx
mov dword [ebp - 0x14c0], 0xfffffff6
mov dword [ebp - 0x14c4], ecx
nop dword [eax]
xor cl, byte [ebp - 0x14c0]
lea edx, [edx + 1]
mov al, byte [ebp + edx - 0x14cd]
dec dword [ebp - 0x14c0]
xor cl, al
xor cl, 0x2e
mov byte [ebp + edx - 0x14cd], cl
mov ecx, dword [ebp - 0x14c4]
add ecx, 8
mov dword [ebp - 0x14c4], ecx
cmp ecx, 0x315
jb 0x10018850
mov byte [ebp - 0x14c7], 0
mov byte [ebp - 0x14e0], 0x53
mov byte [ebp - 0x14df], 0x53
mov byte [ebp - 0x14de], 0x5b
mov byte [ebp - 0x14dd], 0x7f
mov byte [ebp - 0x14dc], 0xa9
mov byte [ebp - 0x14db], 0xbd
mov byte [ebp - 0x14da], 0xb9
mov byte [ebp - 0x14d9], 0xa8
mov byte [ebp - 0x14d8], 0xe5
mov al, byte [ebp - 0x14e0]
mov ecx, 0x2e5
mov byte [ebp - 4], 1
xor edx, edx
mov dword [ebp - 0x14c0], 0xfffffff6
mov dword [ebp - 0x14c4], ecx
xor cl, byte [ebp - 0x14c0]
lea edx, [edx + 1]
mov al, byte [ebp + edx - 0x14e1]
dec dword [ebp - 0x14c0]
xor cl, al
xor cl, 0x2e
mov byte [ebp + edx - 0x14e1], cl
mov ecx, dword [ebp - 0x14c4]
add ecx, 8
mov dword [ebp - 0x14c4], ecx
cmp ecx, 0x32d
jb 0x100188f0
lea eax, [ebp - 0x13a8]
mov byte [ebp - 0x14d8], 0
mov dword [ebp - 0x106c], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x14e0]
mov dword [ebp - 0x1070], 3
mov dword [ebp - 0x1068], eax
lea eax, [ebp - 0x14cc]
mov dword [ebp - 0x1064], eax
lea eax, [ebp - 0x1070]
push eax
movups xmmword [ebp - 0x1060], xmm0
movups xmmword [ebp - 0x1050], xmm0
movups xmmword [ebp - 0x1040], xmm0
call dword [0x1005c390]
add esp, 4
xor eax, eax
nop dword [eax + eax]
mov byte [ebp + eax - 0x14e0], 0
inc eax
cmp eax, 9
jb 0x10018990
mov dword [ebp - 4], 0xffffffff
xor eax, eax
nop word [eax + eax]
mov byte [ebp + eax - 0x14cc], 0
inc eax
cmp eax, 6
jb 0x100189b0
push dword [ebp - 0x139c]
call dword [sym.imp.WS2_32.dll_htons]
movzx ecx, ax
mov dword [ebp - 0x14c0], ecx
mov dword [ebp - 0x30], 0x100007f
jmp 0x10018c34
movups xmm0, xmmword [eax + 6]
movzx ecx, word [eax + 0x16]
mov edi, 0x17
mov dword [ebp - 0x14c0], ecx
movups xmmword [ebp - 0x30], xmm0
lea esi, [edi - 7]
jmp 0x10018c39
movzx ecx, word [eax + 0x16]
mov eax, dword [eax + 2]
mov dword [ebp - 0x14c0], ecx
jmp 0x10018c2c
mov edx, dword [edx + 0x30]
mov eax, dword [edx]
sub eax, 4
je 0x10018c1f
sub eax, 1
je 0x10018bf9
mov byte [ebp - 0x14d4], 0xf
mov edi, 2
mov byte [ebp - 0x14d3], 1
mov byte [ebp - 0x14d2], 0x16
mov byte [ebp - 0x14d1], 0x16
mov byte [ebp - 0x14d0], 0xe9
mov byte [ebp - 0x14cf], 0xd2
mov al, byte [ebp - 0x14d4]
mov ecx, 0x2e5
mov dword [ebp - 4], edi
xor edx, edx
mov dword [ebp - 0x14c0], 0xfffffff6
mov dword [ebp - 0x14c4], ecx
nop word [eax + eax]
xor cl, byte [ebp - 0x14c0]
lea edx, [edx + 1]
mov al, byte [ebp + edx - 0x14d5]
dec dword [ebp - 0x14c0]
xor cl, al
xor cl, 0x2e
mov byte [ebp + edx - 0x14d5], cl
mov ecx, dword [ebp - 0x14c4]
add ecx, 8
mov dword [ebp - 0x14c4], ecx
cmp ecx, 0x315
jb 0x10018a80
mov byte [ebp - 0x14cf], 0
mov byte [ebp - 0x14ec], 0x53
mov byte [ebp - 0x14eb], 0x53
mov byte [ebp - 0x14ea], 0x5b
mov byte [ebp - 0x14e9], 0x7f
mov byte [ebp - 0x14e8], 0xa9
mov byte [ebp - 0x14e7], 0xbd
mov byte [ebp - 0x14e6], 0xb9
mov byte [ebp - 0x14e5], 0xa8
mov byte [ebp - 0x14e4], 0xe5
mov al, byte [ebp - 0x14ec]
mov ecx, 0x2e5
mov byte [ebp - 4], 3
xor edx, edx
mov dword [ebp - 0x14c0], 0xfffffff6
mov dword [ebp - 0x14c4], ecx
xor cl, byte [ebp - 0x14c0]
lea edx, [edx + 1]
mov al, byte [ebp + edx - 0x14ed]
dec dword [ebp - 0x14c0]
xor cl, al
xor cl, 0x2e
mov byte [ebp + edx - 0x14ed], cl
mov ecx, dword [ebp - 0x14c4]
add ecx, 8
mov dword [ebp - 0x14c4], ecx
cmp ecx, 0x32d
jb 0x10018b20
lea eax, [ebp - 0x14b8]
mov byte [ebp - 0x14e4], 0
mov dword [ebp - 0x10ac], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x14ec]
mov dword [ebp - 0x10b0], 3
mov dword [ebp - 0x10a8], eax
lea eax, [ebp - 0x14d4]
mov dword [ebp - 0x10a4], eax
lea eax, [ebp - 0x10b0]
push eax
movups xmmword [ebp - 0x10a0], xmm0
movups xmmword [ebp - 0x1090], xmm0
movups xmmword [ebp - 0x1080], xmm0
call dword [0x1005c390]
add esp, 4
xor eax, eax
nop dword [eax + eax]
mov byte [ebp + eax - 0x14ec], 0
inc eax
cmp eax, 9
jb 0x10018bc0
mov dword [ebp - 4], 0xffffffff
xor eax, eax
nop word [eax + eax]
mov byte [ebp + eax - 0x14d4], 0
inc eax
cmp eax, 6
jb 0x10018be0
push dword [ebp - 0x14ac]
jmp 0x100189c4
movzx ecx, word [edx + 0x12]
mov edi, 6
movq xmm0, qword [edx + 8]
mov ax, word [edx + 0x10]
mov dword [ebp - 0x14c0], ecx
lea esi, [edi + 4]
movq qword [ebp - 0x30], xmm0
mov word [ebp - 0x28], ax
jmp 0x10018c39
movzx eax, word [edx + 0x12]
mov dword [ebp - 0x14c0], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0x30], eax
mov edi, 2
mov esi, 4
mov eax, dword [0x1008c900]
sub eax, dword [0x10082794]
mov dword [0x1008c900], eax
test eax, eax
jg 0x10018dc0
mov eax, dword [0x10052598]
mov dword [0x1008c900], 0x1f4
cmp eax, 0xffffffff
je 0x10018c6c
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
push 0x11
push 2
movzx eax, di
push eax
call dword [sym.imp.WS2_32.dll_socket]
mov dword [0x10052598], eax
cmp eax, 0xffffffff
je 0x10018ca1
lea ecx, [ebp - 0x10cc]
mov dword [ebp - 0x10cc], 1
push ecx
push 0x8004667e
push eax
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov eax, dword [ebp - 0x14c0]
mov word [ebp - 0x1126], ax
lea eax, [ebp - 0x30]
push esi
push eax
lea eax, [ebp - 0x1124]
mov word [ebp - 0x1128], di
push eax
call fcn.100230c0
mov byte [ebp - 0x1500], 0xc2
mov ecx, 0x2e5
mov byte [ebp - 0x14ff], 0xc9
add esp, 0xc
mov byte [ebp - 0x14fe], 0xd0
xor edx, edx
mov byte [ebp - 0x14fd], 0xdf
mov byte [ebp - 0x14fc], 0xbe
mov byte [ebp - 0x14fb], 0xb7
mov byte [ebp - 0x14fa], 0xbf
mov byte [ebp - 0x14f9], 0xaf
mov byte [ebp - 0x14f8], 0x91
mov byte [ebp - 0x14f7], 0x8f
mov byte [ebp - 0x14f6], 0x83
mov byte [ebp - 0x14f5], 0x8d
mov byte [ebp - 0x14f4], 0xf2
mov byte [ebp - 0x14f3], 0x80
mov byte [ebp - 0x14f2], 0x93
mov al, byte [ebp - 0x1500]
mov dword [ebp - 0x14c4], 0xfffffff6
mov dword [ebp - 0x14f0], ecx
nop
xor cl, byte [ebp - 0x14c4]
lea edx, [edx + 1]
mov al, byte [ebp + edx - 0x1501]
dec dword [ebp - 0x14c4]
xor cl, al
xor cl, 0x2e
mov byte [ebp + edx - 0x1501], cl
mov ecx, dword [ebp - 0x14f0]
add ecx, 8
mov dword [ebp - 0x14f0], ecx
cmp ecx, 0x35d
jb 0x10018d50
push 0x10
lea eax, [ebp - 0x1128]
mov byte [ebp - 0x14f2], 0
push eax
push 0
push 0xe
lea eax, [ebp - 0x1500]
push eax
push dword [0x10052598]
call dword [sym.imp.WS2_32.dll_sendto]
xor eax, eax
mov byte [ebp + eax - 0x1500], 0
inc eax
cmp eax, 0xf
jb 0x10018db2
lea eax, [ebp - 0x1100]
mov dword [ebp - 0x1100], 0x10
push eax
lea eax, [ebp - 0x1138]
push eax
push 0
push 0xfff
lea eax, [ebp - 0x1030]
push eax
push dword [0x10052598]
call dword [sym.imp.WS2_32.dll_recvfrom]
test eax, eax
jle 0x1001956c
cmp eax, 0x1000
jae 0x10019593
mov byte [ebp + eax - 0x1030], 0
cmp word [ebp - 0x1138], di
jne 0x1001956c
mov eax, dword [ebp - 0x14c0]
cmp word [ebp - 0x1136], ax
jne 0x1001956c
lea ecx, [ebp - 0x1134]
lea edx, [ebp - 0x30]
sub esi, 4
jb 0x10018e51
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10018e56
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10018e40
cmp esi, 0xfffffffc
je 0x10018e93
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1001956c
cmp esi, 0xfffffffd
je 0x10018e93
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1001956c
cmp esi, 0xfffffffe
je 0x10018e93
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1001956c
cmp esi, 0xffffffff
je 0x10018e93
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x1001956c
mov byte [ebp - 0x1514], 0xc2
xor ecx, ecx
mov byte [ebp - 0x1513], 0xc9
mov edx, 0x2e5
mov byte [ebp - 0x1512], 0xd0
mov byte [ebp - 0x1511], 0xdf
mov byte [ebp - 0x1510], 0xaa
mov byte [ebp - 0x150f], 0xa6
mov byte [ebp - 0x150e], 0xaa
mov byte [ebp - 0x150d], 0xa8
mov byte [ebp - 0x150c], 0x90
mov byte [ebp - 0x150b], 0x9d
mov byte [ebp - 0x150a], 0xa5
mov byte [ebp - 0x1509], 0x9d
mov byte [ebp - 0x1508], 0xf2
mov byte [ebp - 0x1507], 0xfa
mov byte [ebp - 0x1506], 0xfc
mov byte [ebp - 0x1505], 0xfa
mov byte [ebp - 0x1504], 0xde
mov byte [ebp - 0x1503], 0xc3
mov byte [ebp - 0x1502], 0xb5
mov byte [ebp - 0x1501], 0xb0
mov al, byte [ebp - 0x1514]
mov dword [ebp - 0x14c4], 0xfffffff6
nop word [eax + eax]
mov al, byte [ebp + ecx - 0x1514]
lea ecx, [ecx + 1]
xor al, dl
add edx, 8
xor al, byte [ebp - 0x14c4]
dec dword [ebp - 0x14c4]
xor al, 0x2e
mov byte [ebp + ecx - 0x1515], al
cmp edx, 0x385
jb 0x10018f40
mov byte [ebp - 0x1501], 0
lea ecx, [ebp - 0x1030]
lea edx, [ebp - 0x1514]
mov esi, 0xf
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10018f95
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10018f84
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10018fbc
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10018fbc
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10018fbc
cmp esi, 0xffffffff
je 0x10018fb8
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x10018fbc
xor ecx, ecx
jmp 0x10018fc1
sbb ecx, ecx
or ecx, 1
xor eax, eax
mov byte [ebp + eax - 0x1514], 0
inc eax
cmp eax, 0x14
jb 0x10018fc3
test ecx, ecx
jne 0x1001956c
mov ecx, dword [0x100c7c68]
mov edx, dword [0x100c7c6c]
cmp ecx, edx
je 0x10018ffc
push ecx
call fcn.10012c10
mov eax, dword [0x100c7c68]
add esp, 4
mov dword [0x100c7c6c], eax
push 0xb0
lea eax, [ebp - 0x1298]
push 0
push eax
call fcn.10022e90
xorps xmm0, xmm0
mov dword [ebp - 0x151c], 0
lea ecx, [ebp - 0x101d]
mov dword [ebp - 0x1518], 0
add esp, 0xc
lea edx, [ecx + 1]
movups xmmword [ebp - 0x152c], xmm0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10019040
sub ecx, edx
lea eax, [ebp - 0x101d]
push ecx
push eax
lea ecx, [ebp - 0x152c]
call fcn.10013650
sub esp, 8
mov dword [ebp - 4], 4
lea eax, [ebp - 0x152c]
lea ecx, [ebp - 0x1298]
push eax
call fcn.1001a080
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x1518]
cmp ecx, 0xf
jbe 0x100190b6
mov edx, dword [ebp - 0x152c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100190ac
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10019589
push ecx
push edx
call fcn.10020cfc
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x1108], 0
movups xmmword [ebp - 0x1118], xmm0
mov dword [ebp - 0x1104], 0xf
mov byte [ebp - 0x1118], 0
push 0xa
lea edx, [ebp - 0x1118]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x1298]
call fcn.1001a8e0
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
jne 0x10019527
push 0xa
lea edx, [ebp - 0x1118]
lea ecx, [ebp - 0x1298]
call fcn.1001a8e0
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
jne 0x10019527
nop dword [eax + eax]
push 0xb0
lea eax, [ebp - 0x11e8]
push 0
push eax
call fcn.10022e90
add esp, 4
lea eax, [ebp - 0x1118]
lea ecx, [ebp - 0x11e8]
push eax
call fcn.1001a080
xorps xmm0, xmm0
mov dword [ebp - 0x10ec], 0
movups xmmword [ebp - 0x10fc], xmm0
mov dword [ebp - 0x10e8], 0xf
mov byte [ebp - 0x10fc], 0
movups xmmword [ebp - 0x10e4], xmm0
mov dword [ebp - 0x10d4], 0
mov dword [ebp - 0x10d0], 0xf
mov byte [ebp - 0x10e4], 0
movups xmmword [ebp - 0x10c8], xmm0
mov dword [ebp - 0x10b8], 0
mov dword [ebp - 0x10b4], 0xf
mov byte [ebp - 0x10c8], 0
push 0x20
lea edx, [ebp - 0x10fc]
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x11e8]
call fcn.1001a8e0
push 0x20
lea edx, [ebp - 0x10e4]
lea ecx, [ebp - 0x11e8]
call fcn.1001a8e0
push 0xa
lea edx, [ebp - 0x10c8]
lea ecx, [ebp - 0x11e8]
call fcn.1001a8e0
cmp dword [ebp - 0x10e8], 0xf
lea eax, [ebp - 0x10fc]
cmova eax, dword [ebp - 0x10fc]
push eax
call fcn.1002a24a
cmp dword [ebp - 0x10d0], 0xf
lea ecx, [ebp - 0x10e4]
mov esi, eax
cmova ecx, dword [ebp - 0x10e4]
push ecx
mov dword [ebp - 0x14f0], esi
call fcn.1002a24a
mov edx, dword [ebp - 0x10b4]
lea ecx, [ebp - 0x10c8]
mov edi, dword [ebp - 0x10c8]
add esp, 0x14
cmp edx, 0xf
mov dword [ebp - 0x10cc], eax
cmova ecx, edi
seta byte [ebp - 0x14b9]
cmp byte [ecx], 0x22
jne 0x100192f6
cmp byte [ebp - 0x14b9], 0
lea eax, [ebp - 0x10c8]
mov esi, dword [ebp - 0x10b8]
cmovne eax, edi
cmp byte [eax + esi - 1], 0x22
jne 0x100192f0
mov edx, 1
lea ecx, [ebp - 0x10c8]
cmp esi, edx
cmovb edx, esi
cmp byte [ebp - 0x14b9], 0
cmovne ecx, edi
sub esi, edx
lea eax, [esi + 1]
push eax
lea eax, [ecx + edx]
push eax
push ecx
call fcn.100230c0
lea ecx, [esi - 1]
mov dword [ebp - 0x10b8], esi
add esp, 0xc
cmp esi, ecx
jb 0x1001958e
cmp dword [ebp - 0x10b4], 0xf
lea eax, [ebp - 0x10c8]
mov dword [ebp - 0x10b8], ecx
cmova eax, dword [ebp - 0x10c8]
mov byte [eax + ecx], 0
mov edi, dword [ebp - 0x10c8]
mov edx, dword [ebp - 0x10b4]
mov esi, dword [ebp - 0x14f0]
cmp dword [ebp - 0x10cc], 0x3e7
je 0x1001940e
test esi, esi
je 0x1001940e
cmp esi, dword [0x1005c4dc]
jne 0x1001940e
xor cl, cl
mov esi, 0x100593c0
xor eax, eax
mov byte [ebp - 0x14b9], cl
mov dword [ebp - 0x14c4], eax
nop
cmp byte [esi - 0x38], 0
je 0x10019389
cmp edx, 0xf
lea eax, [ebp - 0x10c8]
lea ecx, [esi + 8]
cmova eax, edi
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x10019365
test dl, dl
je 0x10019361
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x10019365
add ecx, 2
add eax, 2
test dl, dl
jne 0x10019345
xor eax, eax
jmp 0x1001936a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1001937d
cmp dword [esi], 3
mov cl, 1
mov byte [ebp - 0x14b9], cl
je 0x100193ab
jmp 0x10019383
mov cl, byte [ebp - 0x14b9]
mov eax, dword [ebp - 0x14c4]
mov edx, dword [ebp - 0x10b4]
add eax, 0xc0
add esi, 0xc0
mov dword [ebp - 0x14c4], eax
cmp eax, 0x3000
jb 0x10019330
test cl, cl
jne 0x100193db
mov eax, dword [0x100c7c6c]
lea ecx, [ebp - 0x10c8]
push ecx
cmp eax, dword [0x100c7c70]
je 0x100193cf
mov ecx, eax
call fcn.1001b9e0
add dword [0x100c7c6c], 0x18
jmp 0x100193d5
push eax
call fcn.1001ab60
mov edi, dword [ebp - 0x10c8]
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x10b4]
cmp eax, 0xf
jbe 0x10019440
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x1001940b
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10019589
push ecx
jmp 0x10019437
mov byte [ebp - 4], 0xa
cmp edx, 0xf
jbe 0x10019440
inc edx
mov eax, edi
cmp edx, 0x1000
jb 0x10019436
mov edi, dword [eax - 4]
add edx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10019589
push edx
push edi
call fcn.10020cfc
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x10d0]
cmp ecx, 0xf
jbe 0x1001947e
mov edx, dword [ebp - 0x10e4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10019474
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10019589
push ecx
push edx
call fcn.10020cfc
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x10e8]
mov dword [ebp - 0x10d4], 0
mov dword [ebp - 0x10d0], 0xf
mov byte [ebp - 0x10e4], 0
cmp ecx, 0xf
jbe 0x100194d7
mov edx, dword [ebp - 0x10fc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100194cd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10019589
push ecx
push edx
call fcn.10020cfc
add esp, 8
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x11e8]
mov dword [ebp - 0x10ec], 0
mov dword [ebp - 0x10e8], 0xf
mov byte [ebp - 0x10fc], 0
call fcn.100195a0
push 0xa
lea edx, [ebp - 0x1118]
lea ecx, [ebp - 0x1298]
call fcn.1001a8e0
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
je 0x10019130
mov ecx, dword [ebp - 0x1104]
cmp ecx, 0xf
jbe 0x1001955d
mov edx, dword [ebp - 0x1118]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10019553
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10019589
push ecx
push edx
call fcn.10020cfc
add esp, 8
lea ecx, [ebp - 0x1298]
call fcn.100195a0
mov al, 1
jmp 0x1001956e
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1002078c
mov esp, ebp
pop ebp
ret
call fcn.1002638f
call fcn.1001a8d0
call fcn.10020e2c
int3