Function at 0x1c14e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x800
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.001b1b50
mov esi, eax
cmp esi, 0
jne 0x1c1508
xor eax, eax
jmp 0x1c387d
xor edi, edi
jmp 0x1c150c
mov dword [esp], esi
call fcn.001b1f20
cmp edi, eax
jb 0x1c151f
mov al, 1
jmp 0x1c387d
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.001b1f30
mov ebx, eax
mov al, byte [esp + 0x19c]
mov byte [esp + 0x1b4], al
mov byte [esp + 0x3a], 0xe0
mov byte [esp + 0x3b], 0x56
mov al, byte [esp + 0x3a]
xor al, 0x90
xor al, 0xd2
mov cl, 0x17
sub cl, al
mov byte [esp + 0x3a], cl
mov al, byte [esp + 0x3b]
xor al, 0x93
xor al, 0xd2
mov cl, 0x17
sub cl, al
mov byte [esp + 0x3b], cl
lea eax, [esp + 0x3a]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.001b1e20
cmp eax, 0
je 0x1c1682
mov al, byte [esp + 0x198]
mov byte [esp + 0x1b8], al
mov byte [esp + 0x79], 0x71
mov byte [esp + 0x7a], 0x5c
mov byte [esp + 0x7b], 0xc9
xor eax, eax
mov dword [esp + 0x7c], ebx
cmp eax, 3
jae 0x1c15e9
movzx ecx, byte [esp + eax + 0x79]
mov ebx, 0x50
sub ebx, eax
mov edx, 0x50
sub edx, eax
and ebx, edx
xor ebx, 0xffffffff
mov edx, ecx
and edx, ebx
mov ebx, 0x50
sub ebx, eax
xor ecx, 0xffffffff
and ebx, ecx
or edx, ebx
mov ebx, dword [esp + 0x7c]
mov cl, 0x87
sub cl, dl
mov byte [esp + eax + 0x79], cl
add eax, 1
jmp 0x1c15a9
lea eax, [esp + 0x79]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.001b1e20
cmp eax, 0
je 0x1c1682
mov al, byte [esp + 0x194]
mov byte [esp + 0x1bc], al
mov byte [esp + 0x38], 0xc1
mov byte [esp + 0x39], 0x65
movzx eax, byte [esp + 0x38]
xor eax, 0xc5230b44
add eax, 0xd6e7a5df
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x38], al
movzx eax, byte [esp + 0x39]
xor eax, 0xc5230b45
add eax, 0xd6e7a5df
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x39], al
lea eax, [esp + 0x38]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.001b1e20
cmp eax, 0
setne al
xor al, 0xff
test al, 1
jne 0x1c1682
jmp 0x1c1687
jmp 0x1c3875
mov al, byte [esp + 0x190]
mov byte [esp + 0x1c0], al
mov byte [esp + 0x36], 0xd8
mov byte [esp + 0x37], 0x6e
movzx eax, byte [esp + 0x36]
mov ecx, eax
and ecx, 0x908aa945
and ecx, 0xfd
shl ecx, 1
mov edx, eax
and edx, 0x908aa945
shl edx, 1
xor eax, 0x908aa945
add eax, edx
sub eax, ecx
add al, 0xd8
mov byte [esp + 0x36], al
movzx eax, byte [esp + 0x37]
mov ecx, eax
and ecx, 0x908aa946
mov edx, ecx
and edx, 2
xor edx, 2
mov ebx, ecx
and ebx, 0xfd
imul ebx, edx
mov edx, ecx
and edx, 2
or ecx, 2
imul ecx, edx
add ecx, ebx
mov ebx, dword [esp + 0x7c]
mov edx, eax
and edx, 0x908aa946
shl edx, 1
xor eax, 0x908aa946
add eax, edx
sub eax, ecx
add al, 0xd8
mov byte [esp + 0x37], al
lea eax, [esp + 0x36]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.001b1860
mov dword [esp + 0x294], eax
mov al, byte [esp + 0x18c]
mov byte [esp + 0x1c4], al
mov byte [esp + 0x76], 0xa6
mov byte [esp + 0x77], 0xb5
mov byte [esp + 0x78], 0xc2
xor eax, eax
cmp eax, 3
jae 0x1c1788
movzx edx, byte [esp + eax + 0x76]
mov ecx, eax
add ecx, 0xae08c0c0
mov ebx, ecx
and ebx, edx
shl ebx, 1
sub ecx, ebx
mov ebx, dword [esp + 0x7c]
add ecx, edx
add ecx, 0x8fb9f9ff
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0x76], cl
add eax, 1
jmp 0x1c174d
mov dword [esp + 0x2c], edi
lea eax, [esp + 0x76]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.001b1960
fnstcw word [esp + 0x86]
movzx eax, word [esp + 0x86]
or eax, 0xc00
mov word [esp + 0x226], ax
fldcw word [esp + 0x226]
fistp dword [esp + 0x2a0]
fldcw word [esp + 0x86]
mov eax, dword [esp + 0x2a0]
mov dword [esp + 0x80], eax
mov al, byte [esp + 0x188]
mov byte [esp + 0x1c8], al
mov byte [esp + 0x34], 0x39
mov byte [esp + 0x35], 0x9d
movzx eax, byte [esp + 0x34]
xor eax, 0xe52b207c
mov ecx, eax
and ecx, 0x1d
mov edx, eax
and edx, 2
mov edi, ebx
mov ebx, edx
xor ebx, 2
imul ebx, ecx
or ecx, 2
imul ecx, edx
add ecx, ebx
mov edx, eax
add edx, edx
and edx, 0x3e
sub eax, edx
add eax, ecx
add al, 0x20
mov byte [esp + 0x34], al
movzx eax, byte [esp + 0x35]
xor eax, 0xe52b207d
mov ecx, eax
and ecx, 0x1d
mov edx, eax
and edx, 2
mov ebx, edx
xor ebx, 2
imul ebx, ecx
or ecx, 2
imul ecx, edx
add ecx, ebx
mov edx, eax
add edx, edx
and edx, 0x3e
sub eax, edx
add eax, ecx
add al, 0x20
mov byte [esp + 0x35], al
lea eax, [esp + 0x34]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.001b1960
fnstcw word [esp + 0x84]
movzx eax, word [esp + 0x84]
or eax, 0xc00
mov word [esp + 0x224], ax
fldcw word [esp + 0x224]
fistp dword [esp + 0x2a4]
fldcw word [esp + 0x84]
mov ebx, dword [esp + 0x2a4]
lea eax, [esp + 0x3fc]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esp + 0x294]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.001ba950
lea eax, [esp + 0x3fc]
lea ecx, [esp + 0x68]
lea edx, [esp + 0x23c]
xor edi, edi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.001bb0b0
test al, 1
jne 0x1c190c
mov edi, dword [esp + 0x2c]
jmp 0x1c3875
cmp ebx, 0
sete al
test al, 1
mov byte [esp + 0x6f], al
jne 0x1c191f
jmp 0x1c2ce4
mov al, byte [esp + 0x184]
mov byte [esp + 0x1cc], al
mov byte [esp + 0x32], 5
mov byte [esp + 0x33], 0xb6
movzx eax, byte [esp + 0x32]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x5d
mov edx, eax
add edx, 1
xor eax, 0xffffffff
or eax, 0xa2
add eax, edx
or eax, ecx
add al, 0x18
mov byte [esp + 0x32], al
movzx eax, byte [esp + 0x33]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x5e
mov edx, eax
add edx, 1
xor eax, 0xffffffff
or eax, 0xa1
add eax, edx
or eax, ecx
add al, 0x18
mov byte [esp + 0x33], al
lea eax, [esp + 0x32]
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.001b1860
mov ebx, eax
cmp ebx, 0
setne al
test al, 1
jne 0x1c19a4
jmp 0x1c1c41
mov dword [esp], ebx
call fcn.001c38c0
mov edi, eax
mov eax, edi
add eax, 1
mov ecx, 2
mov dword [esp + 0x250], eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x1c19d0
mov ecx, eax
mov dword [esp], ecx
call fcn.001b8220
xor ecx, ecx
mov dword [esp + 0x28], eax
mov dword [esp], eax
mov eax, dword [esp + 0x250]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
call fcn.001ba950
xor eax, eax
lea eax, [esp + 0x180]
mov dword [esp], 0
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], ecx
mov dword [esp + 0x29c], edi
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [fcn.001f5bd8]
sub esp, 0x18
mov cl, byte [esp + 0x17c]
mov byte [esp + 0x1d0], cl
mov byte [esp + 0x4c], pe_nt_image_headers32
mov byte [esp + 0x4d], 0x5c
mov byte [esp + 0x4e], 0x5d
mov byte [esp + 0x4f], 0x9e
movzx edx, byte [esp + 0x4c]
mov ecx, edx
and ecx, 0x44dc6443
xor edx, 0xffffffff
and edx, 0xbb239bbc
or ecx, edx
mov edi, ecx
xor edi, 0xffffffff
shl edi, 1
and edi, 0xce
mov edx, ecx
xor edx, 0x18
add edx, edi
and ecx, 1
or edx, 1
add edx, ecx
mov byte [esp + 0x4c], dl
movzx edx, byte [esp + 0x4d]
mov ecx, edx
and ecx, 0x44dc6444
xor edx, 0xffffffff
and edx, 0xbb239bbb
or ecx, edx
mov edi, ecx
xor edi, 0xffffffff
shl edi, 1
and edi, 0xce
mov edx, ecx
xor edx, 0x18
add edx, edi
and ecx, 1
or edx, 1
add edx, ecx
mov byte [esp + 0x4d], dl
movzx edx, byte [esp + 0x4e]
mov ecx, edx
and ecx, 0x44dc6445
xor edx, 0xffffffff
and edx, 0xbb239bba
or ecx, edx
mov edi, ecx
xor edi, 0xffffffff
shl edi, 1
and edi, 0xce
mov edx, ecx
xor edx, 0x18
add edx, edi
and ecx, 1
or edx, 1
add edx, ecx
mov byte [esp + 0x4e], dl
movzx edx, byte [esp + 0x4f]
mov ecx, edx
and ecx, 0x44dc6446
xor edx, 0xffffffff
and edx, 0xbb239bb9
or ecx, edx
mov edi, ecx
xor edi, 0xffffffff
shl edi, 1
and edi, 0xce
mov edx, ecx
xor edx, 0x18
add edx, edi
and ecx, 1
or edx, 1
add edx, ecx
mov byte [esp + 0x4f], dl
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
jne 0x1c1b71
mov edi, dword [esp + 0x2c]
jmp 0x1c1b4d
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.001b8230
jmp 0x1c1b5b
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.001e66a0
mov eax, 4
jmp 0x1c1c33
mov eax, dword [esp + 0x180]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
mov edi, dword [esp + 0x2c]
jne 0x1c1b92
mov ecx, eax
mov dword [esp], ecx
call fcn.001b8220
mov ecx, dword [fcn.001f5bd8]
mov dword [esp + 0x244], ecx
mov ecx, dword [esp + 0x180]
xor edx, edx
lea edx, [esp + 0x180]
mov dword [esp], 0
mov ebx, dword [esp + 0x28]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x29c]
mov dword [esp + 8], ebx
mov ebx, eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call dword [esp + 0x244]
sub esp, 0x18
cmp eax, 0
jge 0x1c1c1b
jmp 0x1c1bf0
mov dword [esp], ebx
call fcn.001b8230
jmp 0x1c1bfa
jmp 0x1c1bfc
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.001b8230
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.001e66a0
mov eax, 4
jmp 0x1c1c33
jmp 0x1c1c1d
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.001b8230
jmp 0x1c1c2b
xor eax, eax
mov dword [esp + 0x28], ebx
jmp 0x1c1c33
cmp eax, 0
je 0x1c23b9
jmp 0x1c23bd
call fcn.001b8b00
and eax, 0xf
or eax, 0x10
add eax, 0
xor edx, edx
lea ecx, [esp + 0x3bc]
jmp 0x1c1c5a
cmp edx, eax
jb 0x1c1ee1
mov word [ecx], 0
mov al, byte [esp + 0x174]
mov byte [esp + 0x1d8], al
mov byte [esp + 0xae], 0xcf
mov byte [esp + 0xaf], 0xeb
mov byte [esp + 0xb0], 0x18
mov byte [esp + 0xb1], 0xed
mov byte [esp + 0xb2], 0x2b
mov byte [esp + 0xb3], 0xef
mov byte [esp + 0xb4], 0x5d
mov byte [esp + 0xb5], 0x91
mov byte [esp + 0xb6], 0x62
mov byte [esp + 0xb7], 0x93
mov byte [esp + 0xb8], 0xb1
mov byte [esp + 0xb9], 0x95
mov byte [esp + 0xba], 0x6a
mov byte [esp + 0xbb], 0x97
mov byte [esp + 0xbc], 0x98
mov byte [esp + 0xbd], 0x99
xor eax, eax
cmp eax, 0x10
jae 0x1c1d55
movzx edx, byte [esp + eax + 0xae]
mov edi, eax
add edi, 0x2067cd3a
mov ecx, eax
add ecx, 0xa067cd3a
and ecx, 0xcd47057b
and edi, 0x32b8fa84
or ecx, edi
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x5e
xor ecx, 0x2f
add ecx, edx
add cl, 1
mov byte [esp + eax + 0xae], cl
mov ecx, eax
add ecx, 1
mov edx, eax
xor edx, 0xffffffff
or edx, 1
add edx, ecx
xor eax, 0xffffffff
or eax, 1
sub edx, eax
mov eax, edx
jmp 0x1c1cf7
lea eax, [esp + 0x35c]
lea ecx, [esp + 0xae]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.001b9e30
lea ecx, [esp + 0x3bc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.001b9e30
mov ebx, eax
lea eax, [esp + 0x35c]
sub ebx, eax
sar ebx, 1
xor eax, eax
lea eax, [esp + 0x35c]
lea ecx, [esp + 0x170]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [fcn.001f5bd8]
sub esp, 0x18
mov cl, byte [esp + 0x16c]
mov byte [esp + 0x1dc], cl
mov byte [esp + 0x44], 0x8c
mov byte [esp + 0x45], 0xe0
mov byte [esp + 0x46], 0xe1
mov byte [esp + 0x47], 0x22
movzx ecx, byte [esp + 0x44]
mov edx, ecx
xor edx, 0xe32ba857
xor ecx, 0xe32ba857
or ecx, edx
mov edi, ecx
shl edi, 1
and edi, 0x8e
xor ecx, 0xe6a2bd47
mov edx, ecx
add edx, edi
shl ecx, 1
and ecx, 2
xor edx, 1
add edx, ecx
mov byte [esp + 0x44], dl
movzx ecx, byte [esp + 0x45]
mov edx, ecx
xor edx, 0xe32ba858
xor ecx, 0xe32ba858
or ecx, edx
mov edi, ecx
shl edi, 1
and edi, 0x8e
xor ecx, 0xe6a2bd47
mov edx, ecx
add edx, edi
shl ecx, 1
and ecx, 2
xor edx, 1
add edx, ecx
mov byte [esp + 0x45], dl
movzx ecx, byte [esp + 0x46]
mov edx, ecx
xor edx, 0xe32ba859
xor ecx, 0xe32ba859
or ecx, edx
mov edi, ecx
shl edi, 1
and edi, 0x8e
xor ecx, 0xe6a2bd47
mov edx, ecx
add edx, edi
shl ecx, 1
and ecx, 2
xor edx, 1
add edx, ecx
mov byte [esp + 0x46], dl
movzx ecx, byte [esp + 0x47]
mov edx, ecx
xor edx, 0xe32ba85a
xor ecx, 0xe32ba85a
or ecx, edx
mov edi, ecx
shl edi, 1
and edi, 0x8e
xor ecx, 0xe6a2bd47
mov edx, ecx
add edx, edi
shl ecx, 1
and ecx, 2
xor edx, 1
add edx, ecx
mov byte [esp + 0x47], dl
cmp eax, dword [esp + 0x44]
setne al
test al, 1
mov edi, dword [esp + 0x2c]
jne 0x1c2027
jmp 0x1c2045
mov dword [esp + 0x290], eax
mov dword [esp + 0x28c], edx
mov dword [esp + 0x288], ecx
call fcn.001b8b00
mov cl, byte [esp + 0x178]
mov byte [esp + 0x1d4], cl
mov byte [esp + 0x48], 0xaf
mov byte [esp + 0x49], 0x8c
mov byte [esp + 0x4a], 0x8d
mov byte [esp + 0x4b], 0x8e
movzx edi, byte [esp + 0x48]
xor edi, 0x9e79ee13
mov edx, edi
shl edx, 1
or edx, 0xfd
mov ecx, edi
and ecx, 1
mov ebx, 0x98
sub ebx, edi
and ebx, 0xfe
or ecx, ebx
xor ecx, 1
add ecx, edx
mov dl, 0xfe
sub dl, cl
mov byte [esp + 0x48], dl
movzx edi, byte [esp + 0x49]
xor edi, 0x9e79ee14
mov edx, edi
shl edx, 1
or edx, 0xfd
mov ecx, edi
and ecx, 1
mov ebx, 0x98
sub ebx, edi
and ebx, 0xfe
or ecx, ebx
xor ecx, 1
add ecx, edx
mov dl, 0xfe
sub dl, cl
mov byte [esp + 0x49], dl
movzx edi, byte [esp + 0x4a]
xor edi, 0x9e79ee15
mov edx, edi
shl edx, 1
or edx, 0xfd
mov ecx, edi
and ecx, 1
mov ebx, 0x98
sub ebx, edi
and ebx, 0xfe
or ecx, ebx
xor ecx, 1
add ecx, edx
mov dl, 0xfe
sub dl, cl
mov byte [esp + 0x4a], dl
movzx edi, byte [esp + 0x4b]
xor edi, 0x9e79ee16
mov edx, edi
shl edx, 1
or edx, 0xfd
mov ecx, edi
and ecx, 1
mov ebx, 0x98
sub ebx, edi
and ebx, 0xfe
or ecx, ebx
xor ecx, 1
add ecx, edx
mov dl, 0xfe
sub dl, cl
mov byte [esp + 0x4b], dl
cdq
idiv dword [esp + 0x48]
movsx eax, byte [edx + 0x1ecb88]
mov edx, dword [esp + 0x28c]
mov edi, dword [esp + 0x288]
mov ecx, edi
add ecx, 2
mov word [edi], ax
mov eax, dword [esp + 0x290]
add edx, 1
jmp 0x1c1c5a
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.001e66a0
mov dword [esp + 0x28], 0
mov eax, 4
jmp 0x1c23b4
mov eax, dword [esp + 0x170]
xor ecx, ecx
sub ecx, eax
add ecx, 0xfffffffc
xor eax, eax
sub eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x1c206d
mov ecx, eax
mov dword [esp], ecx
call fcn.001b8220
mov edi, dword [fcn.001f5bd8]
mov ecx, dword [esp + 0x170]
xor edx, edx
lea edx, [esp + 0x35c]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0x170]
mov dword [esp + 0x14], eax
call edi
sub esp, 0x18
cmp eax, 0
jge 0x1c20e5
mov edi, dword [esp + 0x2c]
jmp 0x1c20c1
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.001b8230
jmp 0x1c20cf
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.001e66a0
mov eax, 4
jmp 0x1c23b4
mov eax, dword [esp + 0x80]
cmp eax, 0
jne 0x1c21b2
mov al, byte [esp + 0x168]
mov byte [esp + 0x1e0], al
mov byte [esp + 0xa4], 0x22
mov byte [esp + 0xa5], 0xcd
mov byte [esp + 0xa6], 0x6b
mov byte [esp + 0xa7], 0xcf
mov byte [esp + 0xa8], 0x68
mov byte [esp + 0xa9], 0xd1
mov byte [esp + 0xaa], 0x77
mov byte [esp + 0xab], 0xd3
mov byte [esp + 0xac], 0xd4
mov byte [esp + 0xad], 0xd5
xor eax, eax
cmp eax, 0xa
jae 0x1c2192
movzx edx, byte [esp + eax + 0xa4]
mov ecx, eax
add ecx, 0x27e2d3ac
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add ecx, 0xc0e9629f
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0xa4], cl
add eax, 1
jmp 0x1c2155
lea eax, [esp + 0xa4]
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.001c3cc0
mov edi, dword [esp + 0x2c]
jmp 0x1c23b0
cmp eax, 1
jne 0x1c22a3
mov al, byte [esp + 0x164]
mov byte [esp + 0x1e4], al
mov byte [esp + 0x9a], 0x8b
mov byte [esp + 0x9b], 0x76
mov byte [esp + 0x9c], 0xd3
mov byte [esp + 0x9d], 0x48
mov byte [esp + 0x9e], 0xf5
mov byte [esp + 0x9f], 0x4a
mov byte [esp + 0xa0], 0xf7
mov byte [esp + 0xa1], 0x4c
mov byte [esp + 0xa2], 0x4d
mov byte [esp + 0xa3], 0x4e
xor ebx, ebx
cmp ebx, 0xa
jae 0x1c2283
movzx eax, byte [esp + ebx + 0x9a]
mov dword [esp + 0x24c], eax
mov ecx, ebx
add ecx, 0x325f649d
mov edx, ebx
add edx, 0x9d
and edx, eax
mov edi, edx
and edi, 0xfd
mov eax, edx
and eax, 2
xor eax, 2
imul eax, edi
mov edi, edx
and edi, 2
or edx, 2
imul edx, edi
add edx, eax
mov eax, ecx
mov edi, dword [esp + 0x24c]
and eax, edi
shl eax, 1
xor ecx, edi
add ecx, eax
sub ecx, edx
add cl, 0x18
mov byte [esp + ebx + 0x9a], cl
add ebx, 1
jmp 0x1c221b
lea eax, [esp + 0x9a]
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.001c3cc0
mov edi, dword [esp + 0x2c]
jmp 0x1c23b0
cmp eax, 2
mov edi, dword [esp + 0x2c]
jne 0x1c23b0
mov al, byte [esp + 0x160]
mov byte [esp + 0x1e8], al
mov byte [esp + 0x90], 0xa3
mov byte [esp + 0x91], 0xde
mov byte [esp + 0x92], 0x6f
mov byte [esp + 0x93], 0xd0
mov byte [esp + 0x94], 0x62
mov byte [esp + 0x95], 0xd2
mov byte [esp + 0x96], 0xa2
mov byte [esp + 0x97], 0xd4
mov byte [esp + 0x98], 0xd5
mov byte [esp + 0x99], 0xd6
xor eax, eax
cmp eax, 0xa
jae 0x1c2399
movzx edx, byte [esp + eax + 0x90]
mov ecx, eax
add ecx, 1
mov edi, eax
xor edi, 0xffffffff
or edi, 0x2f5a4775
add edi, ecx
shl edi, 1
mov ebx, eax
xor ebx, 0xaf5a4775
add ebx, edi
mov edi, ebx
shl edi, 1
xor edi, 0xffffffff
mov ecx, ebx
add ecx, edi
mov edi, ebx
xor edi, 0xffffffff
and ecx, edi
mov edi, ecx
shl edi, 1
xor edi, 0xffffffff
add ecx, edi
mov edi, dword [esp + 0x2c]
and ecx, edx
or ebx, edx
xor ebx, 0xffffffff
or ecx, ebx
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
mov edx, ecx
add edx, 0x852dc457
mov ebx, edx
and ebx, 1
and ecx, 1
xor ecx, 1
or ebx, ecx
or edx, 1
add ebx, edx
mov byte [esp + eax + 0x90], bl
add eax, 1
jmp 0x1c2310
lea eax, [esp + 0x90]
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.001c3cc0
xor eax, eax
jmp 0x1c23b4
cmp eax, 0
jne 0x1c23bd
xor eax, eax
jmp 0x1c23bd
cmp eax, 0
jne 0x1c3875
lea eax, [esp + 0x238]
xor ecx, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x100002
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 5
mov dword [esp + 0x14], 0x60
mov dword [esp + 0x18], 0x80
call 0x1e9460
mov edx, eax
cmp edx, 0
setge al
test al, 1
jne 0x1c2418
jmp 0x1c256f
mov eax, dword [esp + 0x23c]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x238]
xor edi, edi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call 0x1e9a20
mov edx, eax
mov eax, dword [esp + 0x238]
mov dword [esp + 0x284], eax
mov al, byte [esp + 0x1b0]
mov byte [esp + 0x210], al
mov byte [esp + 0x60], 0xf8
mov byte [esp + 0x61], 0xe7
mov byte [esp + 0x62], 0xe6
mov byte [esp + 0x63], 0xe5
movzx ecx, byte [esp + 0x60]
mov eax, ecx
and eax, 0x70
or ecx, 0x70
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x60], al
movzx ecx, byte [esp + 0x61]
mov eax, ecx
and eax, 0x6f
or ecx, 0x6f
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x61], al
movzx ecx, byte [esp + 0x62]
mov eax, ecx
and eax, 0x6e
or ecx, 0x6e
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x62], al
movzx ecx, byte [esp + 0x63]
mov eax, ecx
and eax, 0x6d
or ecx, 0x6d
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x63], al
mov ecx, dword [esp + 0x60]
xor edi, edi
cmp edi, dword [0x1f5bdc]
jb 0x1c24ed
mov edi, dword [esp + 0x2c]
jmp 0x1c256d
mov eax, dword [0x1f5be0]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
mov dword [esp + 0x258], edi
jne 0x1c250a
jmp 0x1c2553
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x1c2553
mov dword [esp + 0x270], ecx
mov ecx, dword [0x1f5be4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x284]
mov dword [esp + 0xc], eax
mov dword [esp + 0x25c], edx
call 0x1e7b20
mov ecx, dword [esp + 0x270]
mov edx, dword [esp + 0x25c]
test bl, 1
je 0x1c255e
mov edi, dword [esp + 0x2c]
jmp 0x1c256d
mov edi, dword [esp + 0x258]
add edi, 1
jmp 0x1c24dc
jmp 0x1c256f
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov ebx, edx
call fcn.001e66a0
mov dword [esp + 0x68], 0
cmp ebx, 0
jge 0x1c259c
mov dword [esp + 0x3c], 0
mov eax, 4
jmp 0x1c2cd6
mov eax, dword [esp + 0x80]
cmp eax, 1
jne 0x1c2938
mov al, byte [esp + 0x15c]
mov byte [esp + 0x1ec], al
mov byte [esp + 0x73], 9
mov byte [esp + 0x74], 0x3e
mov byte [esp + 0x75], 0xa1
xor eax, eax
cmp eax, 3
jae 0x1c2616
movzx edx, byte [esp + eax + 0x73]
mov dword [esp + 0x248], edx
mov ecx, 0xe8
sub ecx, eax
or ecx, edx
mov edx, 0xe8
sub edx, eax
mov edi, 0xe8
sub edi, eax
mov ebx, 0xe8
sub ebx, eax
and edi, ebx
or edx, edi
and edx, dword [esp + 0x248]
xor ecx, 0xffffffff
or edx, ecx
add dl, 0x48
mov byte [esp + eax + 0x73], dl
add eax, 1
jmp 0x1c25cb
lea eax, [esp + 0x73]
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.001b1860
mov dword [esp + 0x140], eax
mov al, byte [esp + 0x158]
mov byte [esp + 0x1f0], al
mov byte [esp + 0x70], 0xa5
mov byte [esp + 0x71], 0xb7
mov byte [esp + 0x72], 6
xor eax, eax
mov ebx, dword [esp + 0x28]
cmp eax, 3
jae 0x1c268f
movzx edx, byte [esp + eax + 0x70]
mov edi, eax
shl edi, 1
and edi, 0xf5437648
mov ecx, eax
xor ecx, 0xfaa1bb24
add ecx, edi
xor ecx, edx
mov edx, ecx
xor edx, 0x21
shl ecx, 1
and ecx, 0xbc
sub ecx, edx
add cl, 1
mov byte [esp + eax + 0x70], cl
add eax, 1
jmp 0x1c2654
lea eax, [esp + 0x70]
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.001b1860
mov dword [esp + 0x13c], eax
mov dword [esp], ebx
call fcn.001c3d10
mov edi, eax
cmp dword [esp + 0x140], 0
setne cl
xor eax, eax
mov byte [esp + 0x6e], cl
test cl, 1
jne 0x1c26cc
jmp 0x1c26de
mov eax, dword [esp + 0x140]
mov dword [esp], eax
call fcn.001c3890
add eax, 1
mov dword [esp + 0x22c], eax
cmp dword [esp + 0x13c], 0
setne cl
xor eax, eax
mov byte [esp + 0x6d], cl
test cl, 1
jne 0x1c26fd
jmp 0x1c270f
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
call fcn.001c3890
add eax, 1
mov edx, edi
and edx, 9
or edi, 9
add edx, edi
xor ecx, ecx
sub ecx, edx
xor edx, edx
sub edx, dword [esp + 0x22c]
add ecx, edx
xor edx, edx
sub edx, ecx
mov dword [esp + 0x230], eax
mov ecx, eax
xor ecx, 0xffffffff
sub ecx, 0xffffffff
sub edx, ecx
xor ecx, ecx
sub ecx, edx
add ecx, 0xffffffff
xor eax, eax
sub eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x1c275e
mov ecx, eax
mov dword [esp], ecx
call fcn.001b8220
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x154]
mov byte [esp + 0x1f4], al
mov byte [esp + 0xbe], 0xae
mov byte [esp + 0xbf], 0x1d
mov byte [esp + 0xc0], 0xab
mov byte [esp + 0xc1], 0x1f
mov byte [esp + 0xc2], 0x4e
mov byte [esp + 0xc3], 0xe1
mov byte [esp + 0xc4], 0x46
mov byte [esp + 0xc5], 0xe3
mov byte [esp + 0xc6], 0x48
mov byte [esp + 0xc7], 0xe5
mov byte [esp + 0xc8], 0x4a
mov byte [esp + 0xc9], 0xe7
mov byte [esp + 0xca], 0x1b
mov byte [esp + 0xcb], 0xe9
mov byte [esp + 0xcc], 0x18
mov byte [esp + 0xcd], 0xeb
mov byte [esp + 0xce], 0xec
mov byte [esp + 0xcf], 0xed
xor eax, eax
cmp eax, 0x12
jae 0x1c284a
movzx edi, byte [esp + eax + 0xbe]
mov ecx, 3
sub ecx, eax
or ecx, edi
mov edx, 3
sub edx, eax
mov ebx, 3
sub ebx, eax
or edx, ebx
mov ebx, dword [esp + 0x28]
and edx, edi
xor ecx, 0xffffffff
add edx, ecx
add dl, 0x20
mov byte [esp + eax + 0xbe], dl
add eax, 1
jmp 0x1c280a
lea eax, [esp + 0xbe]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.001b9e30
mov ecx, eax
add ecx, 2
mov word [eax], 0x20
add ecx, 2
mov word [eax + 2], 0x22
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.001b9e30
mov edi, eax
add edi, 2
mov word [eax], 0x22
cmp ebx, 0
je 0x1c289b
mov dword [esp], ebx
call fcn.001b8230
jmp 0x1c2899
jmp 0x1c289b
test byte [esp + 0x6e], 1
jne 0x1c28af
mov edx, dword [esp + 0x230]
mov al, byte [esp + 0x6d]
jmp 0x1c28f2
mov ebx, edi
add ebx, 2
mov word [edi], 0x2c
xor eax, eax
mov dword [esp], ebx
mov eax, dword [esp + 0x22c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.001ba950
shl eax, 1
add ebx, eax
mov edi, ebx
mov edx, dword [esp + 0x230]
mov al, byte [esp + 0x6d]
test al, 1
jne 0x1c28f8
jmp 0x1c2925
mov eax, edi
add eax, 2
mov word [edi], 0x2c
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], edx
mov eax, dword [esp + 0x13c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.001ba950
jmp 0x1c2925
mov dword [esp + 0x28], 0
xor eax, eax
mov edi, dword [esp + 0x2c]
jmp 0x1c2ccb
mov dword [esp + 0x3c], 0
cmp eax, 2
je 0x1c294a
jmp 0x1c2ccb
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.001c3d10
add eax, 0x490f9ffe
add eax, 0xb6f0601f
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x1c2979
mov ecx, eax
mov dword [esp], ecx
call fcn.001b8220
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x150]
mov byte [esp + 0x1f8], al
mov byte [esp + 0x40], 0x13
mov byte [esp + 0x41], 0x32
mov byte [esp + 0x42], 0x33
mov byte [esp + 0x43], 0x34
movzx ecx, byte [esp + 0x40]
mov eax, ecx
and eax, 0xf9
or ecx, 0x7918fdf9
xor eax, ecx
mov ecx, eax
xor ecx, 0x36
add ecx, 1
shl eax, 1
and eax, 0x6c
or eax, 1
add ecx, eax
mov byte [esp + 0x40], cl
movzx ecx, byte [esp + 0x41]
mov eax, ecx
and eax, 0xfa
or ecx, 0x7918fdfa
xor eax, ecx
mov ecx, eax
xor ecx, 0x36
add ecx, 1
shl eax, 1
and eax, 0x6c
or eax, 1
add ecx, eax
mov byte [esp + 0x41], cl
movzx ecx, byte [esp + 0x42]
mov eax, ecx
and eax, 0xfb
or ecx, 0x7918fdfb
xor eax, ecx
mov ecx, eax
xor ecx, 0x36
add ecx, 1
shl eax, 1
and eax, 0x6c
or eax, 1
add ecx, eax
mov byte [esp + 0x42], cl
movzx ecx, byte [esp + 0x43]
mov eax, ecx
and eax, 0xfc
or ecx, 0x7918fdfc
xor eax, ecx
mov ecx, eax
xor ecx, 0x36
add ecx, 1
shl eax, 1
and eax, 0x6c
or eax, 1
add ecx, eax
mov byte [esp + 0x43], cl
mov al, byte [esp + 0x14c]
mov byte [esp + 0x1fc], al
mov byte [esp + 0x102], 0xd6
mov byte [esp + 0x103], 0x47
mov byte [esp + 0x104], 0xe7
mov byte [esp + 0x105], 0x49
mov byte [esp + 0x106], 0xdd
mov byte [esp + 0x107], 0x4b
mov byte [esp + 0x108], 0xe9
mov byte [esp + 0x109], 0x4d
mov byte [esp + 0x10a], 0xdc
mov byte [esp + 0x10b], 0x4f
mov byte [esp + 0x10c], 0x23
mov byte [esp + 0x10d], 0xb1
mov byte [esp + 0x10e], 0x1a
mov byte [esp + 0x10f], 0xb3
mov byte [esp + 0x110], 0x11
mov byte [esp + 0x111], 0xb5
mov byte [esp + 0x112], 0x1a
mov byte [esp + 0x113], 0xb7
mov byte [esp + 0x114], 0x14
mov byte [esp + 0x115], 0xb9
mov byte [esp + 0x116], 0xda
mov byte [esp + 0x117], 0xbb
mov byte [esp + 0x118], 0xd1
mov byte [esp + 0x119], 0xbd
mov byte [esp + 0x11a], 0x1b
mov byte [esp + 0x11b], 0xbf
mov byte [esp + 0x11c], 0x38
mov byte [esp + 0x11d], 0xa1
mov byte [esp + 0x11e], 7
mov byte [esp + 0x11f], 0xa3
mov byte [esp + 0x120], 7
mov byte [esp + 0x121], 0xa5
mov byte [esp + 0x122], 0xc6
mov byte [esp + 0x123], 0xa7
mov byte [esp + 0x124], 0xa
mov byte [esp + 0x125], 0xa9
mov byte [esp + 0x126], 0x33
mov byte [esp + 0x127], 0xab
mov byte [esp + 0x128], 0x3c
mov byte [esp + 0x129], 0xad
mov byte [esp + 0x12a], 0xf
mov byte [esp + 0x12b], 0xaf
mov byte [esp + 0x12c], 3
mov byte [esp + 0x12d], 0x91
mov byte [esp + 0x12e], 1
mov byte [esp + 0x12f], 0x93
mov byte [esp + 0x130], 0xf4
mov byte [esp + 0x131], 0x95
mov byte [esp + 0x132], 0xfb
mov byte [esp + 0x133], 0x97
mov byte [esp + 0x134], 0x3e
mov byte [esp + 0x135], 0x99
mov byte [esp + 0x136], 0xfa
mov byte [esp + 0x137], 0x9b
mov byte [esp + 0x138], 0xfe
mov byte [esp + 0x139], 0x9d
mov byte [esp + 0x13a], 0x9e
mov byte [esp + 0x13b], 0x9f
xor eax, eax
cmp eax, 0x3a
jae 0x1c2c89
movzx ecx, byte [esp + eax + 0x102]
mov edx, eax
add edx, 0x62a402f6
mov edi, eax
add edi, 0xf6
mov ebx, edx
or ebx, edi
and ebx, ecx
shl ebx, 1
add edx, ecx
mov ecx, edx
sub ecx, ebx
mov edi, ecx
add edi, 0xeadfe84f
mov ebx, edi
and ebx, 1
and edx, 1
xor edx, 1
or ebx, edx
shl ebx, 1
shl edi, 1
and edi, 2
add ecx, 0x50
sub ecx, edi
add ecx, ebx
mov byte [esp + eax + 0x102], cl
add eax, 1
jmp 0x1c2c2f
lea eax, [esp + 0x102]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.001b9e30
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
call fcn.001b9e30
lea ecx, [esp + 0x40]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.001b9e30
mov edi, dword [esp + 0x2c]
mov eax, 2
jmp 0x1c2ccb
mov dword [esp + 0x80], eax
xor eax, eax
jmp 0x1c2cd6
cmp eax, 0
je 0x1c302e
jmp 0x1c3875
xor ebx, 1
mov eax, dword [esp + 0x80]
xor eax, 2
or ebx, eax
sete al
mov dword [esp + 0x3c], 0
test al, 1
jne 0x1c2d13
mov dword [esp + 0x28], 0
mov edi, dword [esp + 0x2c]
jmp 0x1c302e
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.001c38c0
mov edi, eax
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x1c2d3c
mov ecx, eax
mov dword [esp], ecx
call fcn.001b8220
mov ebx, eax
mov eax, dword [esp + 0x68]
xor ecx, ecx
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.001ba950
mov eax, dword [esp + 0x23c]
mov ecx, eax
and ecx, 0x18
or eax, 0x18
add eax, ecx
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffff
xor eax, eax
sub eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x1c2d96
mov ecx, eax
mov dword [esp], ecx
call fcn.001b8220
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x148]
mov byte [esp + 0x200], al
mov byte [esp + 0xd0], 0x2c
mov byte [esp + 0xd1], 0x9d
mov byte [esp + 0xd2], 0x31
mov byte [esp + 0xd3], 0x9f
mov byte [esp + 0xd4], 0xd7
mov byte [esp + 0xd5], 0x61
mov byte [esp + 0xd6], 0xc7
mov byte [esp + 0xd7], 0x63
mov byte [esp + 0xd8], 0xd6
mov byte [esp + 0xd9], 0x65
mov byte [esp + 0xda], 0xd5
mov byte [esp + 0xdb], 0x67
mov byte [esp + 0xdc], 0xc0
mov byte [esp + 0xdd], 0x69
mov byte [esp + 0xde], 0xcf
mov byte [esp + 0xdf], 0x6b
mov byte [esp + 0xe0], 0xc0
mov byte [esp + 0xe1], 0x6d
mov byte [esp + 0xe2], 0xc2
mov byte [esp + 0xe3], 0x6f
mov byte [esp + 0xe4], 0x90
mov byte [esp + 0xe5], 0x71
mov byte [esp + 0xe6], 0x9f
mov byte [esp + 0xe7], 0x73
mov byte [esp + 0xe8], 0xd1
mov byte [esp + 0xe9], 0x75
mov byte [esp + 0xea], 0xce
mov byte [esp + 0xeb], 0x77
mov byte [esp + 0xec], 0xdd
mov byte [esp + 0xed], 0x79
mov byte [esp + 0xee], 0xd9
mov byte [esp + 0xef], 0x7b
mov byte [esp + 0xf0], 0x9c
mov byte [esp + 0xf1], 0x7d
mov byte [esp + 0xf2], 0xdc
mov byte [esp + 0xf3], 0x7f
mov byte [esp + 0xf4], 0xf9
mov byte [esp + 0xf5], 0x41
mov byte [esp + 0xf6], 0xf2
mov byte [esp + 0xf7], 0x43
mov byte [esp + 0xf8], 0xe5
mov byte [esp + 0xf9], 0x45
mov byte [esp + 0xfa], 0xf5
mov byte [esp + 0xfb], 0x47
mov byte [esp + 0xfc], 0xfb
mov byte [esp + 0xfd], 0x49
mov byte [esp + 0xfe], 0xaa
mov byte [esp + 0xff], 0x4b
mov byte [esp + 0x100], 0x4c
mov byte [esp + 0x101], 0x4d
xor edx, edx
mov edi, dword [esp + 0x2c]
cmp edx, 0x32
jae 0x1c2ff7
movzx eax, byte [esp + edx + 0xd0]
mov dword [esp + 0x254], eax
mov dword [esp + 0x298], ebx
mov ebx, edx
add ebx, 0xdc8f6b7c
mov edi, 0x23709483
sub edi, edx
mov eax, 0x23709483
sub eax, edx
mov dword [esp + 0x228], eax
mov ecx, edi
and ecx, 0x99
mov eax, ebx
and eax, 0x66
mov dword [esp + 0x240], eax
mov eax, dword [esp + 0x228]
and eax, 0x99
and ebx, 0x66
or ecx, dword [esp + 0x240]
or eax, ebx
mov ebx, dword [esp + 0x298]
xor ecx, eax
or edi, dword [esp + 0x228]
xor edi, 0xffffffff
or ecx, edi
mov edi, dword [esp + 0x254]
and ecx, edi
mov eax, edi
shl eax, 1
xor eax, 0xffffffff
add eax, edi
mov edi, 0x83
sub edi, edx
and eax, edi
mov edi, dword [esp + 0x2c]
or ecx, eax
mov al, 0x1f
sub al, cl
mov byte [esp + edx + 0xd0], al
add edx, 1
jmp 0x1c2f46
lea eax, [esp + 0xd0]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.001b9e30
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.001b9e30
mov dword [esp], ebx
call fcn.001b8230
jmp 0x1c3024
mov dword [esp + 0x28], 0
jmp 0x1c302e
mov ecx, dword [esp + 0x80]
test ecx, ecx
je 0x1c3056
jmp 0x1c303b
mov eax, ecx
sub eax, 1
je 0x1c3211
jmp 0x1c3048
sub ecx, 2
je 0x1c358d
jmp 0x1c3836
test byte [esp + 0x6f], 1
jne 0x1c3062
jmp 0x1c3211
call fcn.001c3d30
lea edi, [esp + 0x318]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x318], 0x44
mov eax, dword [0x1f4bd0]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.001e8ec0
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x318]
lea edx, [esp + 0x2c4]
mov edi, dword [esp + 0x28]
mov dword [esp], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 4], edi
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
setne al
test al, 1
mov edi, dword [esp + 0x2c]
jne 0x1c310b
jmp 0x1c320c
mov edx, dword [esp + 0x2c4]
mov al, byte [esp + 0x1ac]
mov byte [esp + 0x214], al
mov byte [esp + 0x5c], 0xf8
mov byte [esp + 0x5d], 0xe7
mov byte [esp + 0x5e], 0xe6
mov byte [esp + 0x5f], 0xe5
movzx ecx, byte [esp + 0x5c]
mov eax, ecx
and eax, 0x70
or ecx, 0x70
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x5c], al
movzx ecx, byte [esp + 0x5d]
mov eax, ecx
and eax, 0x6f
or ecx, 0x6f
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x5d], al
movzx ecx, byte [esp + 0x5e]
mov eax, ecx
and eax, 0x6e
or ecx, 0x6e
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x5e], al
movzx ecx, byte [esp + 0x5f]
mov eax, ecx
and eax, 0x6d
or ecx, 0x6d
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x5f], al
mov ecx, dword [esp + 0x5c]
xor edi, edi
cmp edi, dword [0x1f5bdc]
jb 0x1c31a4
jmp 0x1c3208
mov eax, dword [0x1f5be0]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x1c31ba
jmp 0x1c31fc
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x1c31fc
mov dword [esp + 0x260], ecx
mov ecx, dword [0x1f5be4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], edx
mov dword [esp + 0x278], edx
call 0x1e7b20
mov ecx, dword [esp + 0x260]
mov edx, dword [esp + 0x278]
test bl, 1
je 0x1c3203
jmp 0x1c3208
add edi, 1
jmp 0x1c319a
mov edi, dword [esp + 0x2c]
jmp 0x1c3836
mov eax, dword [0x1f4bd0]
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.001e8ec0
mov edi, eax
call fcn.001c3d30
call fcn.001c3d30
test edi, edi
setne al
jne 0x1c323d
jmp 0x1c323b
xor edi, edi
mov eax, dword [esp + 0x68]
xor ecx, ecx
lea ecx, [0x1d01d0]
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call edi
sub esp, 0x18
mov dword [esp + 0x234], eax
cmp eax, 0
mov edi, dword [esp + 0x2c]
je 0x1c3588
mov cl, byte [esp + 0x144]
mov byte [esp + 0x204], cl
mov byte [esp + 0x88], 0x2a
mov byte [esp + 0x89], 0x71
mov byte [esp + 0x8a], 0xf0
mov byte [esp + 0x8b], 0x51
mov byte [esp + 0x8c], 0x31
mov byte [esp + 0x8d], 0x30
mov byte [esp + 0x8e], 0xcf
mov byte [esp + 0x8f], 0xce
xor ecx, ecx
cmp ecx, 8
jae 0x1c336b
movzx eax, byte [esp + ecx + 0x88]
mov edx, ecx
add edx, 0xa4151bfa
mov ebx, 5
sub ebx, ecx
mov edi, 5
sub edi, ecx
and ebx, edi
or edx, eax
xor eax, 0xffffffff
or ebx, eax
and edx, ebx
mov eax, edx
xor eax, 0x20a8dfd0
mov ebx, edx
or ebx, 0xdf57202f
and ebx, eax
mov eax, ebx
and eax, 0xfffffffd
mov edi, edx
and edi, 2
xor edi, 2
imul edi, eax
mov eax, edx
and eax, 2
or ebx, 2
imul ebx, eax
add edi, ebx
xor edx, 0xdf57202f
add edi, edx
and edx, 1
or edi, 1
add edx, edi
mov byte [esp + ecx + 0x88], dl
mov edx, ecx
add edx, 1
mov eax, ecx
xor eax, 0xffffffff
or eax, 1
add edx, eax
shl edx, 1
xor ecx, 1
add ecx, edx
jmp 0x1c32d9
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x2ac], ecx
mov dword [esp + 0x2a8], eax
mov al, byte [esp + 0x208]
mov byte [esp + 0x20c], al
mov byte [esp + 0x64], 0xf8
mov byte [esp + 0x65], 0xe7
mov byte [esp + 0x66], 0xe6
mov byte [esp + 0x67], 0xe5
movzx eax, byte [esp + 0x64]
mov ecx, eax
and ecx, 0x70
or eax, 0x70
xor eax, 0xffffffff
or ecx, eax
add cl, 0x88
mov byte [esp + 0x64], cl
movzx eax, byte [esp + 0x65]
mov ecx, eax
and ecx, 0x6f
or eax, 0x6f
xor eax, 0xffffffff
or ecx, eax
add cl, 0x88
mov byte [esp + 0x65], cl
movzx eax, byte [esp + 0x66]
mov ecx, eax
and ecx, 0x6e
or eax, 0x6e
xor eax, 0xffffffff
or ecx, eax
add cl, 0x88
mov byte [esp + 0x66], cl
movzx eax, byte [esp + 0x67]
mov ecx, eax
and ecx, 0x6d
or eax, 0x6d
xor eax, 0xffffffff
or ecx, eax
add cl, 0x88
mov byte [esp + 0x67], cl
mov eax, dword [esp + 0x64]
xor edi, edi
cmp edi, dword [0x1f5bdc]
jb 0x1c341d
jmp 0x1c348f
mov ecx, dword [0x1f5be0]
cmp dword [ecx + edi*8], 0xa67d73aa
sete bl
test bl, 1
jne 0x1c3434
jmp 0x1c3483
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, eax
je 0x1c3483
mov dword [esp + 0x274], eax
mov eax, dword [0x1f5be4]
xor edx, edx
lea edx, [esp + 0x2a8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xc
mov eax, dword [esp + 0x234]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call 0x1e7b20
mov eax, dword [esp + 0x274]
test bl, 1
jne 0x1c348d
add edi, 1
jmp 0x1c3413
jmp 0x1c348f
mov al, byte [esp + 0x1a8]
mov byte [esp + 0x218], al
mov byte [esp + 0x58], 0xf8
mov byte [esp + 0x59], 0xe7
mov byte [esp + 0x5a], 0xe6
mov byte [esp + 0x5b], 0xe5
movzx eax, byte [esp + 0x58]
mov ecx, eax
and ecx, 0x70
or eax, 0x70
xor eax, 0xffffffff
or ecx, eax
add cl, 0x88
mov byte [esp + 0x58], cl
movzx eax, byte [esp + 0x59]
mov ecx, eax
and ecx, 0x6f
or eax, 0x6f
xor eax, 0xffffffff
or ecx, eax
add cl, 0x88
mov byte [esp + 0x59], cl
movzx eax, byte [esp + 0x5a]
mov ecx, eax
and ecx, 0x6e
or eax, 0x6e
xor eax, 0xffffffff
or ecx, eax
add cl, 0x88
mov byte [esp + 0x5a], cl
movzx eax, byte [esp + 0x5b]
mov ecx, eax
and ecx, 0x6d
or eax, 0x6d
xor eax, 0xffffffff
or ecx, eax
add cl, 0x88
mov byte [esp + 0x5b], cl
mov eax, dword [esp + 0x58]
xor edi, edi
cmp edi, dword [0x1f5bdc]
jb 0x1c3525
jmp 0x1c3582
mov ecx, dword [0x1f5be0]
cmp dword [ecx + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x1c353c
jmp 0x1c3576
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, eax
je 0x1c3576
mov dword [esp + 0x264], eax
mov eax, dword [0x1f5be4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
mov eax, dword [esp + 0x234]
mov dword [esp + 0xc], eax
call 0x1e7b20
mov eax, dword [esp + 0x264]
test bl, 1
je 0x1c357d
jmp 0x1c3582
add edi, 1
jmp 0x1c351b
mov edi, dword [esp + 0x2c]
jmp 0x1c3588
jmp 0x1c3836
lea eax, [esp + 0x2d4]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x44
call fcn.001b83b0
mov dword [esp + 0x2d4], 0x44
mov eax, dword [0x1f4bd0]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.001e8ec0
test eax, eax
setne cl
xor ecx, ecx
lea ebx, [esp + 0x2d4]
lea edx, [esp + 0x2b4]
mov dword [esp], 0
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0x8000000
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
je 0x1c3836
mov edx, dword [esp + 0x2b8]
mov al, byte [esp + 0x1a4]
mov byte [esp + 0x21c], al
mov byte [esp + 0x54], 0xf8
mov byte [esp + 0x55], 0xe7
mov byte [esp + 0x56], 0xe6
mov byte [esp + 0x57], 0xe5
movzx ecx, byte [esp + 0x54]
mov eax, ecx
and eax, 0x70
or ecx, 0x70
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x54], al
movzx ecx, byte [esp + 0x55]
mov eax, ecx
and eax, 0x6f
or ecx, 0x6f
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x55], al
movzx ecx, byte [esp + 0x56]
mov eax, ecx
and eax, 0x6e
or ecx, 0x6e
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x56], al
movzx ecx, byte [esp + 0x57]
mov eax, ecx
and eax, 0x6d
or ecx, 0x6d
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x57], al
mov ecx, dword [esp + 0x54]
xor edi, edi
cmp edi, dword [0x1f5bdc]
jb 0x1c36d1
jmp 0x1c3735
mov eax, dword [0x1f5be0]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x1c36e7
jmp 0x1c3729
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x1c3729
mov dword [esp + 0x26c], ecx
mov ecx, dword [0x1f5be4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], edx
mov dword [esp + 0x280], edx
call 0x1e7b20
mov ecx, dword [esp + 0x26c]
mov edx, dword [esp + 0x280]
test bl, 1
je 0x1c3730
jmp 0x1c3735
add edi, 1
jmp 0x1c36c7
mov edx, dword [esp + 0x2b4]
mov al, byte [esp + 0x1a0]
mov byte [esp + 0x220], al
mov byte [esp + 0x50], 0xf8
mov byte [esp + 0x51], 0xe7
mov byte [esp + 0x52], 0xe6
mov byte [esp + 0x53], 0xe5
movzx ecx, byte [esp + 0x50]
mov eax, ecx
and eax, 0x70
or ecx, 0x70
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x50], al
movzx ecx, byte [esp + 0x51]
mov eax, ecx
and eax, 0x6f
or ecx, 0x6f
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x51], al
movzx ecx, byte [esp + 0x52]
mov eax, ecx
and eax, 0x6e
or ecx, 0x6e
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x52], al
movzx ecx, byte [esp + 0x53]
mov eax, ecx
and eax, 0x6d
or ecx, 0x6d
xor ecx, 0xffffffff
or eax, ecx
add al, 0x88
mov byte [esp + 0x53], al
mov ecx, dword [esp + 0x50]
xor edi, edi
cmp edi, dword [0x1f5bdc]
jb 0x1c37ce
jmp 0x1c3832
mov eax, dword [0x1f5be0]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x1c37e4
jmp 0x1c3826
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x1c3826
mov dword [esp + 0x268], ecx
mov ecx, dword [0x1f5be4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], edx
mov dword [esp + 0x27c], edx
call 0x1e7b20
mov ecx, dword [esp + 0x268]
mov edx, dword [esp + 0x27c]
test bl, 1
je 0x1c382d
jmp 0x1c3832
add edi, 1
jmp 0x1c37c4
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.001e66a0
cmp dword [esp + 0x28], 0
je 0x1c3855
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.001b8230
cmp dword [esp + 0x3c], 0
sete al
test al, 1
jne 0x1c3873
jmp 0x1c3863
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.001b8230
jmp 0x1c3871
jmp 0x1c3873
jmp 0x1c3875
add edi, 1
jmp 0x1c150c
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret