Function at 0x14002db40
Capabilities:
Allocate thread local storage
Identify system language via api

Disassembly:
sub rsp, 0x158
mov dword [rsp + 0x3c], 0x121
mov byte [rsp + 0x21], 0xc7
mov dword [rsp + 0x28], 0x6f
mov dword [rsp + 0x58], 0x11b
mov dword [rsp + 0x2c], 0xb2
mov dword [rsp + 0x40], 0x1ab
mov dword [rsp + 0x4c], 0x199
mov byte [rsp + 0x24], 0x17
mov dword [rsp + 0x30], 0x113
mov dword [rsp + 0x5c], 0x4c
mov dword [rsp + 0x38], 0x12
mov dword [rsp + 0x34], 0xd
mov byte [rsp + 0x22], 0xb4
mov byte [rsp + 0x26], 0xbf
mov byte [rsp + 0x20], 0x8d
mov dword [rsp + 0x50], 0xf1
mov byte [rsp + 0x23], 0xf1
mov byte [rsp + 0x25], 0xb3
movzx eax, byte [0x140074c6d]
imul eax, dword [rsp + 0x28]
xor edx, edx
mov ecx, 4
div ecx
mov eax, edx
mov dword [rsp + 0x28], eax
movsx eax, byte [rsp + 0x25]
mov ecx, dword [0x140074c80]
imul ecx, eax
mov eax, ecx
xor edx, edx
mov ecx, 3
div ecx
mov eax, edx
mov byte [rsp + 0x20], al
cmp dword [rsp + 0x5c], 0
je 0x14002dc1a
movzx eax, byte [rsp + 0x21]
or eax, dword [rsp + 0x50]
test eax, eax
je 0x14002dc1a
mov dword [rsp + 0x6c], 1
jmp 0x14002dc22
mov dword [rsp + 0x6c], 0
movzx eax, byte [0x140074c5c]
mov ecx, dword [rsp + 0x6c]
sar eax, cl
mov ecx, dword [0x140074c74]
and ecx, eax
mov eax, ecx
mov dword [0x140074c74], eax
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, dword [0x140074c64]
shl eax, cl
mov dword [0x140074c80], eax
mov eax, dword [rsp + 0x50]
cmp dword [0x140074a6c], eax
jne 0x14002dc6a
mov dword [rsp + 0x70], 1
jmp 0x14002dc72
mov dword [rsp + 0x70], 0
movsx eax, byte [0x140074c6f]
xor eax, dword [rsp + 0x70]
mov byte [0x140074c6f], al
mov eax, dword [rsp + 0x40]
movzx ecx, al
mov eax, dword [rsp + 0x3c]
shl eax, cl
mov ecx, dword [0x140074c34]
and ecx, eax
mov eax, ecx
and eax, dword [rsp + 0x38]
test eax, eax
je 0x14002dcb7
movsx eax, byte [0x140074c5d]
test eax, eax
je 0x14002dcb7
mov dword [rsp + 0x74], 1
jmp 0x14002dcbf
mov dword [rsp + 0x74], 0
mov eax, dword [rsp + 0x74]
mov ecx, dword [0x140074c60]
add ecx, eax
mov eax, ecx
mov dword [0x140074c60], eax
movzx eax, byte [0x140074c89]
test eax, eax
jne 0x14002dcfc
movzx eax, byte [rsp + 0x21]
movzx ecx, byte [rsp + 0x22]
sub ecx, dword [rsp + 0x40]
or eax, ecx
test eax, eax
jne 0x14002dcfc
mov dword [rsp + 0x78], 0
jmp 0x14002dd04
mov dword [rsp + 0x78], 1
mov eax, dword [rsp + 0x78]
mov ecx, dword [0x140074c64]
sub ecx, eax
mov eax, ecx
mov dword [0x140074c64], eax
movsx eax, byte [0x140074c5e]
mov ecx, dword [rsp + 0x30]
sar eax, cl
test eax, eax
jne 0x14002dd4e
movzx eax, byte [rsp + 0x22]
test eax, eax
je 0x14002dd44
mov eax, dword [0x140074c80]
mov ecx, dword [rsp + 0x58]
add ecx, eax
mov eax, ecx
test eax, eax
jne 0x14002dd4e
mov dword [rsp + 0x7c], 0
jmp 0x14002dd56
mov dword [rsp + 0x7c], 1
mov eax, dword [rsp + 0x7c]
mov dword [0x140074c74], eax
cmp dword [0x140074c54], 0
je 0x14002dd87
mov eax, dword [rsp + 0x34]
mov ecx, dword [rsp + 0x38]
sub ecx, eax
mov eax, ecx
test eax, eax
je 0x14002dd87
cmp dword [rsp + 0x58], 0
je 0x14002dd87
mov byte [rsp + 0x44], 1
jmp 0x14002dd8c
mov byte [rsp + 0x44], 0
movzx eax, byte [rsp + 0x44]
mov byte [0x140074c90], al
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
movsx eax, byte [0x140074a62]
mov ecx, dword [rsp + 0x4c]
shl eax, cl
mov ecx, dword [0x140074c28]
or ecx, eax
mov eax, ecx
mov dword [0x140074c28], eax
movzx eax, byte [0x140074c88]
mov ecx, dword [rsp + 0x2c]
mov edx, dword [rsp + 0x2c]
or edx, ecx
mov ecx, edx
movzx edx, byte [rsp + 0x20]
or ecx, edx
and eax, ecx
mov dword [0x140074c8c], eax
movzx eax, byte [rsp + 0x26]
cmp dword [0x140074a68], eax
jne 0x14002ddf0
mov byte [rsp + 0x45], 1
jmp 0x14002ddf5
mov byte [rsp + 0x45], 0
movzx eax, byte [rsp + 0x45]
mov byte [0x140074c90], al
mov eax, dword [rsp + 0x40]
mov ecx, dword [0x140074c34]
and ecx, eax
mov eax, ecx
xor eax, dword [rsp + 0x34]
movsx ecx, byte [rsp + 0x25]
and ecx, dword [0x140074c30]
or eax, ecx
mov ecx, dword [0x140074c64]
xor ecx, eax
mov eax, ecx
mov dword [0x140074c64], eax
mov eax, dword [rsp + 0x28]
cmp dword [rsp + 0x4c], eax
jne 0x14002de5a
movzx eax, byte [rsp + 0x20]
mov ecx, dword [rsp + 0x4c]
add ecx, eax
mov eax, ecx
or eax, dword [rsp + 0x38]
mov ecx, dword [0x140074c48]
sub ecx, eax
mov eax, ecx
mov byte [0x140074a63], al
movzx eax, byte [rsp + 0x20]
mov ecx, dword [0x140074c38]
imul ecx, eax
mov eax, ecx
cdq
mov ecx, 3
idiv ecx
mov dword [rsp + 0x50], eax
movzx eax, byte [rsp + 0x21]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov ecx, dword [0x140074c68]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x28], eax
movzx eax, byte [0x140074c89]
mov dword [rsp + 0x124], eax
movzx ecx, byte [rsp + 0x21]
mov eax, ecx
cdq
mov ecx, 5
idiv ecx
mov ecx, dword [rsp + 0x124]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x28], eax
movzx eax, byte [0x140074c8b]
test eax, eax
je 0x14002dede
movzx eax, byte [rsp + 0x24]
mov ecx, dword [rsp + 0x3c]
add ecx, eax
mov eax, ecx
sub eax, dword [rsp + 0x2c]
test eax, eax
jne 0x14002def6
movsx eax, byte [0x140074a63]
test eax, eax
jne 0x14002def6
mov dword [rsp + 0x80], 0
jmp 0x14002df01
mov dword [rsp + 0x80], 1
mov eax, dword [rsp + 0x80]
mov ecx, dword [0x140074a68]
and ecx, eax
mov eax, ecx
mov dword [0x140074a68], eax
movzx eax, byte [0x140074b8e]
xor eax, dword [rsp + 0x50]
mov byte [0x140074a63], al
movzx eax, byte [rsp + 0x21]
mov ecx, dword [rsp + 0x2c]
xor ecx, eax
mov eax, ecx
test eax, eax
je 0x14002df4e
cmp dword [rsp + 0x5c], 0
je 0x14002df4e
mov dword [rsp + 0x84], 1
jmp 0x14002df59
mov dword [rsp + 0x84], 0
movzx eax, byte [0x140074c89]
or eax, dword [rsp + 0x84]
movsx ecx, byte [0x140074c6f]
add ecx, eax
mov eax, ecx
mov byte [0x140074c6f], al
movzx eax, byte [0x140074b8f]
movzx ecx, byte [rsp + 0x24]
mov edx, dword [rsp + 0x34]
and edx, ecx
mov ecx, edx
or eax, ecx
movzx ecx, byte [0x140074c5f]
and ecx, eax
mov eax, ecx
mov byte [0x140074c5f], al
mov dword [rsp + 0x60], 0x62
mov dword [rsp + 0x60], 0x12
jmp 0x14002dfbb
mov eax, dword [rsp + 0x60]
inc eax
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0xda
jge 0x14002e0c6
mov eax, dword [rsp + 0x3c]
mov ecx, dword [0x140074c3c]
sub ecx, eax
mov eax, ecx
movzx ecx, byte [rsp + 0x24]
mov edx, dword [rsp + 0x30]
add edx, ecx
mov ecx, edx
shl eax, cl
test eax, eax
jne 0x14002e000
cmp dword [0x140074c54], 0
jne 0x14002e000
mov dword [rsp + 0x88], 0
jmp 0x14002e00b
mov dword [rsp + 0x88], 1
mov eax, dword [rsp + 0x88]
mov dword [0x140074c54], eax
cmp dword [rsp + 0x5c], 0
jne 0x14002e03d
mov eax, dword [rsp + 0x38]
movzx ecx, al
mov eax, dword [rsp + 0x40]
shr eax, cl
test eax, eax
jne 0x14002e03d
mov dword [rsp + 0x8c], 0
jmp 0x14002e048
mov dword [rsp + 0x8c], 1
mov eax, dword [rsp + 0x8c]
cmp dword [0x140074c54], eax
jne 0x14002e064
mov dword [rsp + 0x90], 1
jmp 0x14002e06f
mov dword [rsp + 0x90], 0
mov eax, dword [rsp + 0x90]
mov ecx, dword [0x140074c54]
xor ecx, eax
mov eax, ecx
mov dword [0x140074c54], eax
xor edx, edx
mov eax, dword [rsp + 0x34]
mov ecx, 3
div ecx
mov ecx, dword [0x140074c80]
add ecx, eax
mov eax, ecx
mov byte [rsp + 0x22], al
movzx eax, byte [rsp + 0x20]
movzx ecx, al
mov eax, dword [0x140074c2c]
shl eax, cl
mov ecx, dword [0x140074c8c]
and ecx, eax
mov eax, ecx
mov dword [0x140074c8c], eax
jmp 0x14002dfb1
mov eax, dword [rsp + 0x3c]
cmp dword [rsp + 0x3c], eax
jbe 0x14002e0dd
mov dword [rsp + 0x94], 1
jmp 0x14002e0e8
mov dword [rsp + 0x94], 0
movzx eax, byte [0x140074b8f]
cmp dword [rsp + 0x94], eax
jne 0x14002e3f8
movsx eax, byte [0x140074c6e]
movzx ecx, byte [rsp + 0x26]
cmp eax, ecx
jne 0x14002e119
mov dword [rsp + 0x98], 1
jmp 0x14002e124
mov dword [rsp + 0x98], 0
movzx eax, byte [rsp + 0x21]
cmp dword [rsp + 0x98], eax
jne 0x14002e13f
mov dword [rsp + 0x9c], 1
jmp 0x14002e14a
mov dword [rsp + 0x9c], 0
mov eax, dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x9c]
and ecx, eax
mov eax, ecx
test eax, eax
je 0x14002e173
cmp dword [0x140074a64], 0
je 0x14002e173
mov dword [rsp + 0xa0], 1
jmp 0x14002e17e
mov dword [rsp + 0xa0], 0
movzx eax, byte [0x140074c5c]
xor eax, dword [rsp + 0xa0]
mov byte [0x140074c5c], al
movzx eax, byte [0x140074c5f]
movzx ecx, byte [rsp + 0x23]
movzx edx, byte [rsp + 0x22]
sub ecx, edx
xor ecx, dword [rsp + 0x40]
xor eax, ecx
mov ecx, dword [0x140074c8c]
or ecx, eax
mov eax, ecx
mov dword [0x140074c8c], eax
movzx eax, byte [rsp + 0x20]
movzx ecx, byte [rsp + 0x21]
mov dword [rsp + 0x128], ecx
movzx edx, byte [rsp + 0x23]
movzx ecx, dl
mov edx, dword [rsp + 0x128]
sar edx, cl
mov ecx, edx
cmp eax, ecx
jne 0x14002e1f0
mov dword [rsp + 0xa4], 1
jmp 0x14002e1fb
mov dword [rsp + 0xa4], 0
movzx eax, byte [0x140074c89]
cmp eax, dword [rsp + 0xa4]
jne 0x14002e218
mov dword [rsp + 0xa8], 1
jmp 0x14002e223
mov dword [rsp + 0xa8], 0
movzx eax, byte [0x140074c89]
add eax, dword [rsp + 0xa8]
mov byte [0x140074c89], al
movzx eax, byte [rsp + 0x24]
cmp dword [0x140074a64], eax
jne 0x14002e251
mov dword [rsp + 0xac], 1
jmp 0x14002e25c
mov dword [rsp + 0xac], 0
mov eax, dword [rsp + 0xac]
mov ecx, dword [0x140074c28]
and ecx, eax
mov eax, ecx
mov dword [0x140074c28], eax
cmp dword [0x140074c30], 0
jne 0x14002e29c
movzx eax, byte [rsp + 0x20]
sub eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x28]
shl eax, cl
test eax, eax
jne 0x14002e29c
mov dword [rsp + 0xb0], 0
jmp 0x14002e2a7
mov dword [rsp + 0xb0], 1
mov eax, dword [rsp + 0xb0]
mov ecx, dword [0x140074c50]
and ecx, eax
mov eax, ecx
mov dword [0x140074c50], eax
xor edx, edx
mov eax, dword [rsp + 0x4c]
mov ecx, 5
div ecx
mov ecx, dword [0x140074c8c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x30]
mov ecx, dword [0x140074c34]
xor ecx, eax
mov eax, ecx
test eax, eax
jne 0x14002e2ff
cmp dword [rsp + 0x28], 0
jne 0x14002e2ff
mov dword [rsp + 0xb4], 0
jmp 0x14002e30a
mov dword [rsp + 0xb4], 1
movsx eax, byte [0x140074c6f]
and eax, dword [rsp + 0xb4]
mov byte [0x140074c6f], al
movsx eax, byte [0x140074c5e]
movzx ecx, byte [rsp + 0x20]
add eax, ecx
movzx ecx, byte [rsp + 0x23]
mov dword [rsp + 0x12c], ecx
mov edx, dword [rsp + 0x40]
movzx ecx, dl
mov edx, dword [rsp + 0x12c]
shl edx, cl
mov ecx, edx
cmp eax, ecx
jne 0x14002e35b
mov dword [rsp + 0xb8], 1
jmp 0x14002e366
mov dword [rsp + 0xb8], 0
mov eax, dword [0x140074c84]
mov ecx, dword [rsp + 0xb8]
and ecx, eax
mov eax, ecx
mov ecx, dword [0x140074c48]
add ecx, eax
mov eax, ecx
mov dword [0x140074c48], eax
mov eax, dword [rsp + 0x2c]
cmp dword [0x140074c70], eax
jne 0x14002e3a0
mov dword [rsp + 0xbc], 1
jmp 0x14002e3ab
mov dword [rsp + 0xbc], 0
movsx eax, byte [0x140074a62]
and eax, dword [rsp + 0xbc]
mov byte [0x140074a62], al
movzx eax, byte [0x140074c5c]
cmp eax, dword [rsp + 0x5c]
jne 0x14002e3d9
mov dword [rsp + 0xc0], 1
jmp 0x14002e3e4
mov dword [rsp + 0xc0], 0
movsx eax, byte [0x140074c6f]
or eax, dword [rsp + 0xc0]
mov byte [0x140074c6f], al
movsx eax, byte [0x140074c90]
cmp dword [rsp + 0x50], eax
jbe 0x14002e412
mov dword [rsp + 0xc4], 1
jmp 0x14002e41d
mov dword [rsp + 0xc4], 0
mov eax, dword [rsp + 0xc4]
cmp dword [rsp + 0x40], eax
je 0x14002e45a
movzx eax, byte [0x140074b8f]
movzx ecx, byte [rsp + 0x22]
movzx edx, byte [rsp + 0x20]
sub ecx, edx
and eax, ecx
xor eax, dword [rsp + 0x3c]
xor eax, dword [0x140074c38]
movzx ecx, byte [0x140074c8a]
or ecx, eax
mov eax, ecx
mov byte [0x140074c8a], al
movsx eax, byte [0x140074a63]
mov dword [rsp + 0x130], eax
xor edx, edx
mov eax, dword [rsp + 0x28]
mov ecx, 3
div ecx
mov eax, edx
mov ecx, dword [rsp + 0x130]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x38]
movzx ecx, al
mov eax, dword [rsp + 0x2c]
shr eax, cl
cmp dword [0x140074c84], eax
jne 0x14002e4a8
mov dword [rsp + 0xc8], 1
jmp 0x14002e4b3
mov dword [rsp + 0xc8], 0
mov eax, dword [rsp + 0xc8]
mov ecx, dword [0x140074a68]
or ecx, eax
mov eax, ecx
mov dword [0x140074a68], eax
movsx eax, byte [0x140074c6c]
mov ecx, dword [rsp + 0x34]
mov edx, dword [rsp + 0x2c]
sub edx, ecx
mov ecx, edx
mov edx, dword [rsp + 0x28]
shl edx, cl
mov ecx, edx
xor eax, ecx
mov ecx, dword [0x140074c3c]
and ecx, eax
mov eax, ecx
mov dword [0x140074c3c], eax
movsx eax, byte [0x140074c90]
test eax, eax
jne 0x14002e540
movzx eax, byte [0x140074c6d]
cmp dword [rsp + 0x30], eax
jle 0x14002e51c
mov dword [rsp + 0xcc], 1
jmp 0x14002e527
mov dword [rsp + 0xcc], 0
movzx eax, byte [rsp + 0x24]
cmp eax, dword [rsp + 0xcc]
jg 0x14002e540
cmp dword [rsp + 0x2c], 0
je 0x14002e605
movsx eax, byte [0x140074a62]
movzx ecx, byte [rsp + 0x20]
mov edx, dword [rsp + 0x30]
add edx, ecx
mov ecx, edx
sub ecx, dword [rsp + 0x40]
xor eax, ecx
mov ecx, dword [0x140074a64]
add ecx, eax
mov eax, ecx
mov dword [0x140074a64], eax
movzx eax, byte [0x140074b8e]
test eax, eax
jne 0x14002e590
cmp dword [rsp + 0x28], 0
je 0x14002e583
cmp dword [rsp + 0x3c], 0
jne 0x14002e590
mov dword [rsp + 0xd0], 0
jmp 0x14002e59b
mov dword [rsp + 0xd0], 1
mov eax, dword [rsp + 0xd0]
mov dword [0x140074c3c], eax
mov eax, dword [rsp + 0x3c]
movzx ecx, al
mov eax, dword [rsp + 0x4c]
shr eax, cl
mov ecx, dword [rsp + 0x4c]
shl eax, cl
mov ecx, dword [0x140074c30]
sub ecx, eax
mov eax, ecx
mov ecx, dword [0x140074a64]
add ecx, eax
mov eax, ecx
mov dword [0x140074a64], eax
cmp dword [0x140074c2c], 0
jne 0x14002e5f5
movzx eax, byte [rsp + 0x21]
movzx ecx, byte [rsp + 0x22]
sar eax, cl
test eax, eax
jne 0x14002e5f5
mov byte [rsp + 0x46], 0
jmp 0x14002e5fa
mov byte [rsp + 0x46], 1
movzx eax, byte [rsp + 0x46]
mov byte [0x140074c5d], al
call qword [sym.imp.KERNEL32.dll_GetErrorMode]
mov dword [rsp + 0x64], 0x1ba
mov dword [rsp + 0x64], 0x1e1
jmp 0x14002e627
mov eax, dword [rsp + 0x64]
dec eax
mov dword [rsp + 0x64], eax
cmp dword [rsp + 0x64], 1
jle 0x14002e652
movsx eax, byte [0x140074c90]
movzx ecx, byte [rsp + 0x20]
mov edx, dword [rsp + 0x4c]
sub edx, ecx
mov ecx, edx
add eax, dword [rsp + 0x5c]
add ecx, eax
mov eax, ecx
mov byte [0x140074a62], al
jmp 0x14002e61d
movzx eax, byte [0x140074b8f]
movsx ecx, byte [rsp + 0x25]
movzx edx, byte [rsp + 0x22]
sub ecx, edx
movsx edx, byte [rsp + 0x25]
add edx, dword [0x140074c28]
and ecx, edx
or eax, ecx
movzx ecx, byte [0x140074b8f]
sub ecx, eax
mov eax, ecx
mov byte [0x140074b8f], al
movzx eax, byte [0x140074c89]
movsx ecx, byte [rsp + 0x25]
add eax, ecx
movzx ecx, byte [rsp + 0x21]
cmp eax, ecx
jne 0x14002e6a9
mov dword [rsp + 0xd4], 1
jmp 0x14002e6b4
mov dword [rsp + 0xd4], 0
mov eax, dword [rsp + 0xd4]
mov dword [0x140074c2c], eax
movsx eax, byte [0x140074c5e]
mov ecx, dword [rsp + 0x34]
sub ecx, eax
mov eax, ecx
cmp dword [rsp + 0x58], eax
jne 0x14002e6e3
mov dword [rsp + 0xd8], 1
jmp 0x14002e6ee
mov dword [rsp + 0xd8], 0
mov eax, dword [rsp + 0x58]
mov ecx, dword [0x140074c74]
sub ecx, eax
mov eax, ecx
and eax, dword [rsp + 0xd8]
mov ecx, dword [0x140074c54]
xor ecx, eax
mov eax, ecx
mov dword [0x140074c54], eax
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x28]
add ecx, eax
mov eax, ecx
mov ecx, dword [0x140074c8c]
or ecx, eax
mov eax, ecx
movzx ecx, byte [0x140074c6d]
add ecx, eax
mov eax, ecx
mov byte [0x140074c6d], al
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x40]
or ecx, eax
mov eax, ecx
test eax, eax
jne 0x14002e75e
cmp dword [rsp + 0x40], 0
jne 0x14002e75e
mov dword [rsp + 0xdc], 0
jmp 0x14002e769
mov dword [rsp + 0xdc], 1
mov eax, dword [rsp + 0xdc]
mov ecx, dword [0x140074c80]
xor ecx, eax
mov eax, ecx
mov ecx, dword [0x140074c4c]
sub ecx, eax
mov eax, ecx
mov dword [0x140074c4c], eax
call qword [sym.imp.USER32.dll_GetFocus]
mov eax, dword [0x140074c8c]
cmp dword [rsp + 0x30], eax
jae 0x14002e7a9
mov dword [rsp + 0xe0], 1
jmp 0x14002e7b4
mov dword [rsp + 0xe0], 0
mov eax, dword [rsp + 0xe0]
cmp dword [rsp + 0x30], eax
je 0x14002e994
cmp dword [0x140074c34], 0
je 0x14002e7fd
mov eax, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x3c]
add ecx, eax
mov eax, ecx
test eax, eax
je 0x14002e7fd
mov eax, dword [0x140074c84]
mov ecx, dword [rsp + 0x34]
or ecx, eax
mov eax, ecx
test eax, eax
je 0x14002e7fd
mov dword [rsp + 0xe4], 1
jmp 0x14002e808
mov dword [rsp + 0xe4], 0
mov eax, dword [rsp + 0xe4]
mov dword [0x140074c30], eax
movsx eax, byte [0x140074a63]
mov dword [rsp + 0x134], eax
movzx ecx, byte [rsp + 0x21]
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
mov ecx, dword [rsp + 0x134]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x34]
mov ecx, dword [0x140074a6c]
add ecx, eax
mov eax, ecx
movzx ecx, byte [rsp + 0x20]
shl eax, cl
test eax, eax
je 0x14002e87a
movzx eax, byte [rsp + 0x26]
movzx ecx, byte [0x140074c5f]
shl eax, cl
test eax, eax
je 0x14002e87a
mov dword [rsp + 0xe8], 1
jmp 0x14002e885
mov dword [rsp + 0xe8], 0
movzx eax, byte [0x140074c5f]
and eax, dword [rsp + 0xe8]
mov byte [0x140074c5f], al
mov eax, dword [0x140074c70]
imul eax, dword [rsp + 0x40]
xor edx, edx
mov ecx, 4
div ecx
mov eax, edx
mov dword [rsp + 0x30], eax
mov eax, dword [0x140074c8c]
imul eax, dword [rsp + 0x58]
xor edx, edx
mov ecx, 3
div ecx
mov dword [rsp + 0x2c], eax
movzx eax, byte [0x140074c8a]
mov dword [rsp + 0x138], eax
xor edx, edx
mov eax, dword [rsp + 0x40]
mov ecx, 3
div ecx
mov ecx, dword [rsp + 0x138]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x38], eax
movzx eax, byte [0x140074c8b]
mov dword [rsp + 0x13c], eax
xor edx, edx
mov eax, dword [rsp + 0x28]
mov ecx, 4
div ecx
mov eax, edx
mov ecx, dword [rsp + 0x13c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x2c], eax
xor edx, edx
mov eax, dword [rsp + 0x2c]
mov ecx, 3
div ecx
mov ecx, dword [0x140074c54]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
movsx eax, byte [0x140074c6c]
or eax, dword [rsp + 0x5c]
test eax, eax
je 0x14002e972
mov eax, dword [rsp + 0x4c]
movzx ecx, al
mov eax, dword [rsp + 0x28]
shr eax, cl
movzx ecx, byte [0x140074c8b]
and eax, ecx
test eax, eax
je 0x14002e972
mov dword [rsp + 0xec], 1
jmp 0x14002e97d
mov dword [rsp + 0xec], 0
mov eax, dword [rsp + 0xec]
mov ecx, dword [0x140074c60]
add ecx, eax
mov eax, ecx
mov dword [0x140074c60], eax
mov dword [rsp + 0x68], 0xfffffedf
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x140], eax
mov eax, dword [rsp + 0x68]
inc eax
mov dword [rsp + 0x68], eax
cmp dword [rsp + 0x140], 0
je 0x14002ebd0
movsx eax, byte [0x140074c90]
cmp eax, dword [rsp + 0x30]
jge 0x14002eb14
cmp dword [rsp + 0x38], 0
je 0x14002eb14
movzx eax, byte [0x140074c5c]
test eax, eax
je 0x14002eb14
movzx eax, byte [rsp + 0x21]
test eax, eax
je 0x14002eb14
cmp dword [0x140074c38], 0
je 0x14002ea21
movzx eax, byte [rsp + 0x20]
movzx ecx, byte [rsp + 0x21]
add ecx, dword [rsp + 0x30]
shl eax, cl
test eax, eax
je 0x14002ea21
mov dword [rsp + 0xf0], 1
jmp 0x14002ea2c
mov dword [rsp + 0xf0], 0
movsx eax, byte [0x140074c5d]
xor eax, dword [rsp + 0xf0]
mov byte [0x140074c5d], al
movzx eax, byte [0x140074b8f]
cmp eax, dword [rsp + 0x28]
jne 0x14002ea5a
mov dword [rsp + 0xf4], 1
jmp 0x14002ea65
mov dword [rsp + 0xf4], 0
mov eax, dword [rsp + 0xf4]
mov dword [0x140074c8c], eax
movsx eax, byte [rsp + 0x25]
mov ecx, dword [0x140074c48]
xor ecx, eax
mov eax, ecx
xor eax, dword [rsp + 0x38]
movzx ecx, byte [0x140074c88]
sub ecx, eax
mov eax, ecx
mov byte [0x140074c88], al
mov eax, dword [rsp + 0x28]
cmp dword [0x140074a68], eax
jne 0x14002eaaf
mov dword [rsp + 0xf8], 1
jmp 0x14002eaba
mov dword [rsp + 0xf8], 0
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0xf8]
or ecx, eax
mov eax, ecx
test eax, eax
jne 0x14002eae3
movzx eax, byte [rsp + 0x26]
add eax, dword [0x140074c38]
test eax, eax
jne 0x14002eae3
mov byte [rsp + 0x49], 0
jmp 0x14002eae8
mov byte [rsp + 0x49], 1
movzx eax, byte [rsp + 0x49]
mov byte [0x140074c89], al
movzx eax, byte [rsp + 0x20]
movzx ecx, al
mov eax, dword [0x140074c80]
shr eax, cl
movzx ecx, byte [0x140074c8a]
xor ecx, eax
mov eax, ecx
mov byte [0x140074c8a], al
movzx eax, byte [rsp + 0x23]
movzx ecx, byte [rsp + 0x24]
sub eax, ecx
mov ecx, dword [rsp + 0x30]
or ecx, eax
mov eax, ecx
cmp dword [0x140074c60], eax
jne 0x14002eb3d
mov dword [rsp + 0xfc], 1
jmp 0x14002eb48
mov dword [rsp + 0xfc], 0
movzx eax, byte [0x140074c5f]
or eax, dword [rsp + 0xfc]
mov byte [0x140074c5f], al
movzx eax, byte [0x140074c8b]
imul eax, dword [rsp + 0x34]
xor edx, edx
mov ecx, 5
div ecx
mov eax, edx
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x38]
movzx ecx, al
mov eax, dword [0x140074c48]
shr eax, cl
mov ecx, dword [0x140074c48]
add ecx, eax
mov eax, ecx
mov dword [0x140074c48], eax
mov eax, dword [0x140074c28]
imul eax, dword [rsp + 0x34]
xor edx, edx
mov ecx, 3
div ecx
mov eax, edx
mov dword [rsp + 0x50], eax
movsx eax, byte [0x140074c6c]
imul eax, dword [rsp + 0x3c]
xor edx, edx
mov ecx, 5
div ecx
mov eax, edx
mov byte [rsp + 0x23], al
jmp 0x14002e99c
call qword [sym.imp.KERNEL32.dll_GetThreadLocale]
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov eax, dword [0x140074c48]
cmp dword [rsp + 0x4c], eax
jbe 0x14002ebf5
mov dword [rsp + 0x100], 1
jmp 0x14002ec00
mov dword [rsp + 0x100], 0
mov eax, dword [rsp + 0x100]
cmp dword [rsp + 0x2c], eax
je 0x14002ec80
movzx eax, byte [0x140074c5f]
mov ecx, dword [rsp + 0x34]
shl eax, cl
movsx ecx, byte [rsp + 0x25]
cmp eax, ecx
jne 0x14002ec30
mov dword [rsp + 0x104], 1
jmp 0x14002ec3b
mov dword [rsp + 0x104], 0
mov eax, dword [rsp + 0x2c]
cmp dword [rsp + 0x104], eax
jne 0x14002ec5e
cmp dword [0x140074c48], 0
je 0x14002ec5e
mov dword [rsp + 0x108], 1
jmp 0x14002ec69
mov dword [rsp + 0x108], 0
mov eax, dword [rsp + 0x108]
mov ecx, dword [0x140074c68]
and ecx, eax
mov eax, ecx
mov dword [0x140074c68], eax
movzx eax, byte [0x140074c6d]
imul eax, dword [rsp + 0x28]
xor edx, edx
mov ecx, 4
div ecx
mov eax, edx
mov dword [rsp + 0x38], eax
movsx eax, byte [0x140074c6c]
movzx ecx, byte [rsp + 0x20]
mov edx, dword [rsp + 0x50]
shl edx, cl
mov ecx, edx
and eax, ecx
mov ecx, dword [0x140074c4c]
and ecx, eax
mov eax, ecx
mov dword [0x140074c4c], eax
mov eax, dword [rsp + 0x2c]
cmp dword [rsp + 0x58], eax
jae 0x14002ed07
movzx eax, byte [0x140074c8a]
movzx ecx, byte [rsp + 0x24]
add eax, ecx
movzx ecx, byte [rsp + 0x20]
cmp eax, ecx
jne 0x14002ecef
mov dword [rsp + 0x10c], 1
jmp 0x14002ecfa
mov dword [rsp + 0x10c], 0
mov eax, dword [rsp + 0x10c]
mov dword [0x140074c54], eax
movzx eax, byte [0x140074c88]
or eax, dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x30]
mov edx, dword [rsp + 0x34]
and edx, ecx
mov ecx, edx
or eax, ecx
movsx ecx, byte [0x140074a63]
or eax, ecx
mov ecx, dword [0x140074c74]
add ecx, eax
mov eax, ecx
mov dword [0x140074c74], eax
movsx eax, byte [0x140074c6c]
movzx ecx, byte [rsp + 0x23]
sar eax, cl
movsx ecx, byte [0x140074c6e]
add ecx, eax
mov eax, ecx
mov byte [0x140074c6e], al
mov eax, dword [rsp + 0x28]
mov ecx, dword [0x140074c64]
sub ecx, eax
mov eax, ecx
mov dword [0x140074a6c], eax
movzx eax, byte [rsp + 0x26]
cmp eax, dword [rsp + 0x34]
jne 0x14002ed84
mov dword [rsp + 0x110], 1
jmp 0x14002ed8f
mov dword [rsp + 0x110], 0
mov eax, dword [rsp + 0x2c]
cmp dword [rsp + 0x110], eax
jne 0x14002eda9
mov dword [rsp + 0x114], 1
jmp 0x14002edb4
mov dword [rsp + 0x114], 0
mov eax, dword [rsp + 0x114]
mov ecx, dword [0x140074c60]
xor ecx, eax
mov eax, ecx
xor eax, dword [0x140074c48]
movzx ecx, byte [0x140074c8b]
xor ecx, eax
mov eax, ecx
mov byte [0x140074c8b], al
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
movzx eax, byte [0x140074c8a]
movzx ecx, byte [rsp + 0x21]
sar eax, cl
and eax, dword [rsp + 0x34]
movzx ecx, byte [0x140074b8f]
mov edx, dword [rsp + 0x5c]
and edx, ecx
mov ecx, edx
xor eax, ecx
mov ecx, dword [0x140074c4c]
add ecx, eax
mov eax, ecx
mov dword [0x140074c4c], eax
movzx eax, byte [0x140074c89]
test eax, eax
jne 0x14002ee4e
movzx eax, byte [rsp + 0x22]
movzx ecx, al
mov eax, dword [rsp + 0x38]
shr eax, cl
mov ecx, dword [rsp + 0x40]
shl eax, cl
movzx ecx, byte [0x140074b8f]
or eax, ecx
test eax, eax
jne 0x14002ee4e
mov dword [rsp + 0x118], 0
jmp 0x14002ee59
mov dword [rsp + 0x118], 1
movsx eax, byte [0x140074c6f]
and eax, dword [rsp + 0x118]
mov byte [0x140074c6f], al
movsx eax, byte [0x140074a62]
movzx ecx, byte [rsp + 0x24]
mov edx, dword [rsp + 0x34]
add edx, ecx
mov ecx, edx
mov dword [rsp + 0x144], ecx
mov edx, dword [rsp + 0x30]
movzx ecx, dl
mov edx, dword [rsp + 0x144]
shl edx, cl
mov ecx, edx
and eax, ecx
movsx ecx, byte [0x140074c5d]
or eax, ecx
mov dword [0x140074c30], eax
mov eax, 0xb0
mov word [rsp + 0x54], ax
mov eax, 5
mov word [rsp + 0x54], ax
jmp 0x14002eece
movzx eax, word [rsp + 0x54]
inc ax
mov word [rsp + 0x54], ax
movsx eax, word [rsp + 0x54]
cmp eax, 0x5af
jge 0x14002f028
xor edx, edx
mov eax, dword [rsp + 0x50]
mov ecx, 3
div ecx
mov eax, edx
mov ecx, dword [0x140074c48]
add ecx, eax
mov eax, ecx
mov byte [rsp + 0x22], al
cmp dword [0x140074c4c], 0
jne 0x14002ef1c
movzx eax, byte [rsp + 0x21]
mov ecx, dword [rsp + 0x4c]
and ecx, eax
mov eax, ecx
test eax, eax
jne 0x14002ef1c
mov byte [rsp + 0x47], 0
jmp 0x14002ef21
mov byte [rsp + 0x47], 1
movzx eax, byte [rsp + 0x47]
mov byte [0x140074c5d], al
mov eax, dword [rsp + 0x58]
movzx ecx, al
mov eax, dword [0x140074c74]
shl eax, cl
mov ecx, dword [rsp + 0x50]
shl eax, cl
mov ecx, dword [0x140074c34]
and ecx, eax
mov eax, ecx
mov dword [0x140074c34], eax
movzx eax, byte [rsp + 0x26]
mov ecx, dword [0x140074a68]
and ecx, eax
mov eax, ecx
or eax, dword [rsp + 0x3c]
mov ecx, dword [0x140074c74]
or ecx, eax
mov eax, ecx
mov dword [0x140074c74], eax
cmp dword [0x140074a68], 0
je 0x14002ef9b
cmp dword [rsp + 0x5c], 0
je 0x14002ef9b
movzx eax, byte [rsp + 0x23]
movzx ecx, byte [rsp + 0x21]
sar eax, cl
test eax, eax
je 0x14002ef9b
mov byte [rsp + 0x48], 1
jmp 0x14002efa0
mov byte [rsp + 0x48], 0
movzx eax, byte [rsp + 0x48]
mov byte [0x140074c89], al
movzx eax, byte [0x140074c5f]
add eax, dword [rsp + 0x30]
test eax, eax
je 0x14002efe2
movsx eax, byte [0x140074c6c]
mov ecx, dword [rsp + 0x28]
xor ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x50]
or ecx, eax
mov eax, ecx
test eax, eax
je 0x14002efe2
mov dword [rsp + 0x11c], 1
jmp 0x14002efed
mov dword [rsp + 0x11c], 0
mov eax, dword [rsp + 0x11c]
mov ecx, dword [0x140074c34]
xor ecx, eax
mov eax, ecx
mov dword [0x140074c34], eax
mov eax, dword [rsp + 0x3c]
mov ecx, dword [0x140074c28]
or ecx, eax
mov eax, ecx
movzx ecx, byte [0x140074c8a]
or ecx, eax
mov eax, ecx
mov byte [0x140074c8a], al
jmp 0x14002eec1
movzx eax, byte [0x140074c88]
movzx ecx, byte [rsp + 0x23]
sub eax, ecx
movzx ecx, byte [rsp + 0x21]
movzx edx, byte [rsp + 0x23]
add ecx, edx
mov dword [rsp + 0x148], ecx
mov edx, dword [0x140074c38]
movzx ecx, dl
mov edx, dword [rsp + 0x148]
sar edx, cl
mov ecx, edx
xor eax, ecx
movsx ecx, byte [0x140074c5e]
and ecx, eax
mov eax, ecx
mov byte [0x140074c5e], al
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x2c]
sub ecx, eax
mov eax, ecx
cmp dword [rsp + 0x30], eax
jne 0x14002f08f
mov dword [rsp + 0x120], 1
jmp 0x14002f09a
mov dword [rsp + 0x120], 0
mov eax, dword [rsp + 0x120]
mov ecx, dword [0x140074c28]
or ecx, eax
mov eax, ecx
mov dword [0x140074a64], eax
movzx ecx, byte [0x140074c8c]
call fcn.14002c470
xor eax, eax
add rsp, 0x158
ret