Function at 0x1001e460
Capabilities:
Authenticate hmac
Encode data using base64
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xf8
mov eax, dword [0x1008f304]
xor eax, esp
mov dword [esp + 0xf4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x114]
and dword [esp + 0x60], 0
and dword [esp + 0x74], 0
and dword [esp + 0x88], 0
and dword [esp + 0x7c], 0
and dword [esp + 0x3c], 0
and dword [esp + 0x90], 0
mov ecx, dword [esp + 0x12c]
mov ebx, dword [esp + 0x110]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x11c]
mov dword [esp + 0xb8], eax
xor ebp, ebp
mov eax, dword [esp + 0x120]
and dword [esp + 0x78], ebp
and dword [esp + 0x54], ebp
mov esi, dword [esp + 0x10c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x5c], eax
mov eax, dword [esi]
mov dword [esp + 0x2c], edx
mov dword [esp + 0xb4], esi
mov esi, dword [ebx]
mov dword [esp + 0xc0], ebx
mov ebx, dword [edx]
mov edx, eax
shr edx, 9
and edx, 1
mov dword [esp + 0x40], eax
mov dword [esp + 0xa8], edx
xor edx, 1
mov dword [esp + 0x1c], 1
and eax, dword [esp + 0x1c]
push 0xfffffffffffffffe
mov dword [esp + 0xb0], edx
pop edx
shl eax, 0x1c
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0xa0], esi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x68], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], esi
mov edi, dword [esp + 0x18]
mov ecx, dword [ecx + 0x34]
mov dword [esp + 0x14], ebx
movzx edx, byte [ebx]
mov eax, dword [edi + 0x10]
add eax, 0xffffff9c
mov dword [esp + 0x20], edx
add eax, ecx
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x1001e632
cmp esi, eax
ja 0x100213f9
mov eax, dword [esp + 0x9c]
cmp esi, eax
mov edx, dword [ecx]
cmovb esi, eax
mov ecx, esi
mov dword [esp + 0x10], esi
sub ecx, eax
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jl 0x1002131a
sub edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x5c]
add edx, esi
mov dword [ecx], edx
test ebp, ebp
je 0x1001e61a
mov edx, dword [esp + 0xa0]
cmp ebp, edx
jbe 0x1001e625
mov eax, esi
sub eax, ebp
push eax
push ebp
push edx
call fcn.1002b259
mov eax, dword [esp + 0xac]
add esp, 0xc
mov ebx, dword [esp + 0x14]
sub eax, ebp
mov ebp, dword [esp + 0xa0]
add esi, eax
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x38], ebp
jmp 0x1001e621
mov esi, dword [esp + 0xa0]
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0x20]
mov dword [esp + 0x9c], esi
jmp 0x1001e63b
cmp dword [edi + 0x24], eax
ja 0x100213f9
cmp dword [esp + 0x3c], 0
je 0x1001e6d8
test edx, edx
je 0x1001e6d8
cmp edx, 0x5c
jne 0x1001e666
cmp byte [ebx + 1], 0x45
jne 0x1001e666
and dword [esp + 0x3c], 0
mov ecx, edi
inc ebx
jmp 0x1001ebfd
mov ebp, dword [esp + 0x78]
test ebp, ebp
je 0x1001e698
test ecx, ecx
jne 0x1001e693
movzx ecx, byte [ebp + 2]
movzx eax, byte [ebp + 3]
shl ecx, 8
or ecx, eax
sub ebx, ecx
sub ebx, dword [edi + 0x18]
mov eax, ebx
mov byte [ebp + 5], bl
sar eax, 8
mov byte [ebp + 4], al
mov ebx, dword [esp + 0x14]
and dword [esp + 0x78], 0
test dword [esp + 0x40], 0x4000
mov ebp, dword [esp + 0x58]
je 0x10021107
mov byte [esi], 0x70
lea ecx, [esi + 1]
mov dword [esp + 0x78], esi
mov eax, ebx
mov byte [ecx], 0xff
mov esi, edi
sub eax, dword [esi + 0x18]
sar eax, 8
mov byte [ecx + 1], al
sub bl, byte [esi + 0x18]
mov byte [ecx + 2], bl
mov word [ecx + 3], 0
add ecx, 5
jmp 0x1001f3c8
cmp edx, 0x2a
je 0x1001e753
cmp edx, 0x2b
je 0x1001e753
cmp edx, 0x3f
je 0x1001e753
cmp edx, 0x7b
jne 0x1001e6fe
lea eax, [ebx + 1]
push eax
call fcn.10022558
mov edx, dword [esp + 0x24]
pop ecx
test eax, eax
jne 0x1001e753
mov ecx, dword [esp + 0x78]
xor edi, edi
test ecx, ecx
je 0x1001e757
mov eax, dword [esp + 0x88]
dec dword [esp + 0x88]
test eax, eax
jg 0x1001e757
cmp dword [esp + 0x5c], edi
jne 0x1001e74d
mov eax, dword [esp + 0x78]
movzx ecx, byte [ecx + 2]
shl ecx, 8
movzx eax, byte [eax + 3]
or ecx, eax
mov eax, dword [esp + 0x18]
sub ebx, ecx
mov ecx, dword [esp + 0x78]
sub ebx, dword [eax + 0x18]
mov eax, ebx
mov byte [ecx + 5], bl
sar eax, 8
mov byte [ecx + 4], al
mov ebx, dword [esp + 0x14]
and dword [esp + 0x78], edi
jmp 0x1001e757
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
test al, 8
je 0x1001e801
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
test byte [edx + eax], 1
jne 0x1001ebfd
cmp edx, 0x23
jne 0x1001e7fd
inc ebx
mov dword [esp + 0x14], ebx
mov dl, byte [ebx]
test dl, dl
je 0x1001e7fb
cmp dword [ecx + 0x64], 0
mov eax, dword [ecx + 0x1c]
je 0x1001e7b6
cmp ebx, eax
jae 0x1001e7d8
push 0
lea esi, [ecx + 0x68]
push esi
push eax
push dword [ecx + 0x64]
push ebx
call fcn.1002b259
mov ebx, dword [esp + 0x28]
add esp, 0x14
test eax, eax
jne 0x1001e7e5
mov ecx, dword [esp + 0x18]
jmp 0x1001e7d8
mov ecx, dword [ecx + 0x68]
sub eax, ecx
cmp ebx, eax
ja 0x1001e7b0
mov esi, dword [esp + 0x18]
cmp dl, byte [esi + 0x6c]
jne 0x1001e7d6
cmp ecx, dword [esp + 0x1c]
je 0x1001e7e7
mov al, byte [ebx + 1]
cmp al, byte [esi + 0x6d]
je 0x1001e7e7
mov ecx, esi
inc ebx
mov dword [esp + 0x14], ebx
mov dl, byte [ebx]
test dl, dl
jne 0x1001e788
jmp 0x1001e7ee
mov ecx, dword [esi]
dec ebx
add ebx, ecx
mov dword [esp + 0x14], ebx
cmp byte [ebx], 0
mov esi, dword [esp + 0x10]
jne 0x1001ebf9
xor edx, edx
mov eax, dword [esp + 0x40]
test eax, 0x4000
je 0x1001e83f
test edi, edi
jne 0x1001e83f
mov byte [esi], 0x70
lea ecx, [esi + 1]
mov byte [ecx], 0xff
mov eax, ebx
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0x18]
sub eax, dword [esi + 0x18]
sar eax, 8
mov byte [ecx + 1], al
sub bl, byte [esi + 0x18]
mov byte [ecx + 2], bl
mov word [ecx + 3], di
add ecx, 5
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
jmp 0x1001e847
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
cmp edx, 0x3f
jg 0x1001f390
je 0x1001f385
mov eax, edx
sub eax, 0
je 0x1002127a
sub eax, 0x24
je 0x1001f368
push 4
pop edi
sub eax, edi
je 0x1001e8e9
sub eax, 1
je 0x1002127a
sub eax, 1
je 0x1001e8e5
sub eax, 1
je 0x1001e8cb
sub eax, 3
jne 0x1001f3c4
mov edi, dword [esp + 0x44]
cmp edi, 0xfffffffe
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
push 0xffffffffffffffff
pop eax
cmove edi, eax
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x58]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
shr eax, 2
and al, dl
mov dword [esp + 0x44], edi
or al, 0xc
mov dword [esp + 0x70], edi
mov byte [esi], al
lea esi, [ecx + 1]
jmp 0x100211a2
mov eax, dword [esp + 0x1c]
or ecx, 0xffffffff
mov edx, ecx
mov esi, dword [esp + 0x28]
mov dword [esp + 0x60], eax
mov dword [esp + 0x74], edx
jmp 0x1001f462
xor eax, eax
jmp 0x1001e8cf
mov eax, dword [esi + 0x24]
xor edi, edi
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x54], eax
xor eax, eax
inc ebx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x48], edi
mov dword [esp + 0x24], 0x7f
mov dl, byte [ebx]
mov dword [esp + 0x20], eax
cmp dl, 0x2a
jne 0x1001eafb
mov al, byte [ebx + 1]
cmp al, 0x3a
je 0x1001e933
movzx ecx, al
mov eax, dword [esi + 0xc]
test byte [ecx + eax], 2
je 0x1001eaf7
mov eax, dword [esp + 0x18]
xor edi, edi
and dword [esp + 0x48], edi
inc ebx
and dword [esp + 0x38], edi
mov edx, 0x100861e0
mov esi, ebx
mov dword [esp + 0x50], edi
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x30], edx
mov dword [esp + 0x6c], esi
jmp 0x1001e95b
inc ebx
mov dword [esp + 0x14], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 2
jne 0x1001e95a
mov ebp, ebx
sub ebp, esi
cmp byte [ebx], 0x3a
jne 0x1001e9a3
inc ebx
mov ecx, ebx
mov dword [esp + 0x48], ecx
jmp 0x1001e97f
cmp al, 0x29
je 0x1001e989
inc ebx
mov dword [esp + 0x14], ebx
mov al, byte [ebx]
test al, al
jne 0x1001e97a
mov edx, ebx
sub edx, ecx
mov dword [esp + 0x50], edx
cmp edx, 0xff
jg 0x100211b3
mov edi, edx
mov edx, dword [esp + 0x30]
cmp byte [ebx], 0x29
jne 0x100211e1
xor ebx, ebx
mov esi, 0x10086210
mov dword [esp + 0x34], ebx
cmp ebp, dword [esi]
jne 0x1001e9d2
push ebp
push edx
push dword [esp + 0x74]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x1001ea07
mov edx, dword [esp + 0x30]
inc edx
add edx, dword [esi]
inc ebx
add esi, 0xc
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ebx
cmp esi, 0x1008627c
jl 0x1001e9b7
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
cmp ebx, 9
mov ebx, dword [esp + 0x14]
jge 0x100211e1
mov ebp, dword [esp + 0x38]
jmp 0x1001ebfd
imul eax, ebx, 0xc
mov ecx, dword [eax + 0x10086214]
cmp ecx, 0x98
jne 0x1001ea6e
test edi, edi
jne 0x100211d5
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov dword [eax + 0x5c], ecx
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x1001ea4c
mov byte [esi], 0x9a
mov al, byte [ecx + 5]
mov byte [esi + 1], al
mov al, byte [ecx + 4]
mov byte [esi + 2], al
add esi, 3
mov ecx, dword [ecx]
jmp 0x1001ea32
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x4c], 0
setg al
add al, 0x98
mov byte [esi], al
inc esi
cmp dword [esp + 0x44], 0xfffffffe
mov dword [esp + 0x10], esi
jne 0x1001e9f1
or dword [esp + 0x44], 0xffffffff
jmp 0x1001e9f1
mov ebx, dword [esp + 0x50]
test ebx, ebx
jne 0x1001eaa7
test ecx, ecx
js 0x100211c2
mov esi, dword [esp + 0x10]
mov al, cl
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x34]
mov byte [esi], al
inc esi
mov dword [esp + 0x10], esi
cmp al, 0x94
jne 0x1001e9f1
or dword [ecx + 0x54], 0x1000
jmp 0x1001e9f1
cmp dword [eax + 0x10086218], 0
jl 0x100211d5
mov ecx, dword [esp + 0x10]
mov al, byte [eax + 0x10086218]
mov byte [ecx], al
cmp al, 0x95
jne 0x1001eacf
mov eax, dword [esp + 0x18]
or dword [eax + 0x54], 0x1000
push ebx
push dword [esp + 0x4c]
lea esi, [ecx + 2]
mov byte [ecx + 1], bl
push esi
call sub.vcruntime140.dll_memcpy
mov byte [ebx + esi], 0
add esp, 0xc
inc ebx
add esi, ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x10], esi
jmp 0x1001e9ed
mov ecx, dword [esp + 0x40]
cmp dl, 0x3f
jne 0x1001f354
inc ebx
mov dword [esp + 0x14], ebx
mov cl, byte [ebx]
movzx eax, cl
cmp eax, 0x3a
ja 0x1001ef17
je 0x1001ef5f
cmp eax, 0x28
ja 0x1001eeec
je 0x1001ec3c
mov edi, ebx
mov esi, ebx
mov dl, cl
sub eax, 0x21
je 0x1001ec03
dec eax
sub eax, 1
je 0x1001ebce
sub eax, 3
je 0x1001ebbe
sub eax, 1
je 0x1001f173
xor ecx, ecx
lea eax, [esp + 0x6c]
xor ebp, ebp
mov dword [esp + 0x84], ecx
mov dword [esp + 0x6c], ebp
cmp dl, 0x29
je 0x10020397
mov ecx, esi
mov esi, ecx
cmp dl, 0x3a
je 0x1002038c
lea ebx, [ecx + 1]
mov dword [esp + 0x14], ebx
cmp dl, 0x69
ja 0x1002035d
je 0x10020355
cmp dl, 0x2d
je 0x1002034c
cmp dl, 0x4a
je 0x10020339
cmp dl, 0x55
je 0x10020331
cmp dl, 0x58
jne 0x100212ec
or dword [eax], 0x40
jmp 0x1002037d
mov eax, dword [esp + 0x1c]
push 0x29
pop esi
mov dword [esp + 0x30], eax
jmp 0x100205ea
inc ebx
mov dword [esp + 0x14], ebx
mov al, byte [ebx]
test al, al
je 0x100211f0
cmp al, 0x29
je 0x1001ebec
inc ebx
mov dword [esp + 0x14], ebx
mov al, byte [ebx]
test al, al
jne 0x1001ebdd
cmp byte [ebx], 0
je 0x100211f0
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
inc ebx
jmp 0x1001e57a
mov esi, dword [esp + 0x10]
inc ebx
mov dword [esp + 0x14], ebx
cmp byte [ebx], 0x29
jne 0x1001ec25
mov byte [esi], 0x97
inc esi
xor ebp, ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x10], esi
mov ebx, dword [esp + 0x14]
jmp 0x1001ebf9
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x48]
push 0x78
pop edx
inc dword [ebx + 0x4c]
mov dword [esp + 0x24], edx
jmp 0x1001f073
cmp byte [ebx + 1], 0x3f
mov dword [esp + 0x24], 0x81
jne 0x1001ec65
mov al, byte [ebx + 2]
cmp al, 0x3d
je 0x1001f06b
cmp al, 0x21
je 0x1001f06b
cmp al, 0x3c
je 0x1001f06b
mov esi, dword [esp + 0x10]
or ebp, 0xffffffff
mov dword [esp + 0x48], 3
mov dword [esp + 0x38], ebp
mov byte [esi + 3], 0x87
mov ebx, dword [esp + 0x14]
lea edx, [ebx + 1]
mov al, byte [edx]
cmp al, 0x52
jne 0x1001eca3
lea ecx, [ebx + 2]
cmp byte [ecx], 0x26
jne 0x1001eca3
mov dword [esp + 0x14], ecx
mov byte [esi + 3], 0x89
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x50], ebp
jmp 0x1001ecdc
cmp al, 0x3c
jne 0x1001ecb0
push 0x3e
pop eax
mov dword [esp + 0x50], eax
jmp 0x1001ecbb
push 0x27
pop ecx
cmp al, cl
jne 0x1001ecc3
mov dword [esp + 0x50], ecx
mov ebx, edx
mov dword [esp + 0x14], ebx
jmp 0x1001ecdc
and dword [esp + 0x50], edi
cmp al, 0x2d
je 0x1001eccf
cmp al, 0x2b
jne 0x1001ecdc
mov ebx, edx
mov dword [esp + 0x14], ebx
movzx eax, byte [ebx]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
lea edi, [ebx + 1]
mov dword [esp + 0x30], edi
mov esi, dword [eax + 0xc]
movzx eax, byte [edi]
test byte [eax + esi], 0x10
je 0x1002120f
mov ebx, edi
xor ecx, ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x34], ecx
mov al, byte [ebx]
movzx edx, al
test byte [edx + esi], 0x10
je 0x1001ed3a
test ecx, ecx
js 0x1001ed26
cmp al, 0x30
jb 0x1001ed24
cmp al, 0x39
ja 0x1001ed24
imul eax, ecx, 0xa
lea ecx, [edx - 0x30]
add ecx, eax
jmp 0x1001ed26
mov ecx, ebp
inc ebx
mov dword [esp + 0x14], ebx
mov al, byte [ebx]
movzx edx, al
test byte [edx + esi], 0x10
jne 0x1001ed0e
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x50]
mov ebp, ebx
sub ebp, edi
test edx, edx
jle 0x1001ed56
movzx eax, byte [ebx]
inc ebx
mov dword [esp + 0x14], ebx
cmp eax, edx
jne 0x100211ff
mov al, byte [ebx]
inc ebx
mov dword [esp + 0x14], ebx
cmp al, 0x29
jne 0x100211ff
cmp dword [esp + 0x5c], 0
jne 0x1001edb1
mov edx, dword [esp + 0x38]
test edx, edx
jle 0x1001edc6
test ecx, ecx
jle 0x1002133c
mov ebp, dword [esp + 0x18]
mov eax, dword [ebp + 0x38]
cmp edx, 0x2d
jne 0x1001ed8f
sub eax, ecx
lea ecx, [eax + 1]
jmp 0x1001ed91
add ecx, eax
test ecx, ecx
jle 0x1002138b
cmp ecx, dword [ebp + 0x3c]
jg 0x1002138b
mov edx, dword [esp + 0x10]
mov eax, ecx
sar eax, 8
mov byte [edx + 5], cl
mov byte [edx + 4], al
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
jmp 0x1001f075
mov ecx, dword [esp + 0x18]
xor edi, edi
mov ebx, dword [esp + 0x30]
mov esi, dword [ecx + 0x28]
cmp edi, dword [ecx + 0x2c]
jge 0x1001ee17
push ebp
lea eax, [esi + 2]
push eax
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
mov ecx, dword [esp + 0x24]
add esp, 0xc
test eax, eax
je 0x1001edf8
add esi, dword [ecx + 0x30]
inc edi
cmp edi, dword [ecx + 0x2c]
jl 0x1001edd8
cmp edi, dword [ecx + 0x2c]
jge 0x1001ee17
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
shl eax, 8
or ecx, eax
mov eax, ecx
shr eax, 8
mov edx, dword [esp + 0x10]
inc byte [edx + 3]
jmp 0x1001edab
mov eax, dword [esp + 0x40]
push 0
shr eax, 3
and eax, dword [esp + 0x20]
push eax
push ebp
push ebx
push ecx
call fcn.1002b259
mov ecx, eax
add esp, 0x14
test ecx, ecx
jle 0x1001ee3b
sar eax, 8
jmp 0x1001ee0e
cmp dword [esp + 0x50], 0
jne 0x10021387
cmp byte [ebx], 0x52
jne 0x1001ee8d
mov edx, dword [esp + 0x1c]
xor ecx, ecx
cmp ebp, edx
jle 0x1001ee7b
mov bl, byte [edx + ebx]
lea eax, [ebx - 0x30]
cmp al, 9
ja 0x10021387
imul ecx, ecx, 0xa
movzx eax, bl
mov ebx, dword [esp + 0x30]
add ecx, 0xffffffd0
add ecx, eax
inc edx
cmp edx, ebp
jl 0x1001ee55
test ecx, ecx
jne 0x1001ee80
mov ecx, 0xffff
mov edx, dword [esp + 0x10]
mov byte [edx + 3], 0x89
jmp 0x1001eda6
cmp ebp, 6
jne 0x1001eec1
push ebp
push str.DEFINE
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x1001eec1
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov edi, ecx
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov byte [esi + 3], 0x8b
jmp 0x1001f079
mov ecx, dword [esp + 0x34]
test ecx, ecx
jle 0x1001eed8
mov eax, dword [esp + 0x18]
cmp ecx, dword [eax + 0x3c]
jle 0x1001eda2
test ecx, ecx
push 0xf
pop ecx
push 0x23
pop eax
cmove ecx, eax
mov eax, dword [esp + 0x28]
mov dword [eax], ecx
jmp 0x100211cc
mov ebp, ebx
cmp eax, 0x2b
je 0x1001ef8a
cmp eax, 0x2d
je 0x1001ef8a
mov esi, ebx
mov dl, cl
cmp eax, 0x2f
jbe 0x1001eb53
cmp eax, 0x39
jbe 0x1001ef8a
jmp 0x1001eb53
mov esi, ebx
mov dl, cl
sub eax, 0x3c
je 0x1001f148
sub eax, 1
je 0x1001f134
sub eax, 1
je 0x1001f05c
sub eax, 5
je 0x1001efd2
push 0xd
pop ecx
sub eax, ecx
je 0x1001ef92
dec eax
sub eax, 1
je 0x1001ef83
sub eax, 0x2a
jne 0x1001eb53
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
jmp 0x1001ef63
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
lea eax, [ebx + 1]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x24], 0x7d
mov edx, dword [esp + 0x24]
mov dword [esp + 0x14], eax
jmp 0x1001f079
inc ebx
mov dword [esp + 0x14], ebx
mov ebp, ebx
push 0x29
pop edi
jmp 0x1002027e
inc ebx
mov dword [esp + 0x14], ebx
mov edi, ebx
mov dl, byte [ebx]
cmp dl, 0x3d
je 0x1001efbd
cmp dl, 0x3e
je 0x1001efc0
cmp dl, 0x3c
je 0x1001f173
mov eax, dword [esp + 0x28]
mov dword [eax], 0x29
jmp 0x10021403
cmp dl, 0x3e
push 0
pop edx
sete dl
push 0x29
mov dword [esp + 0x34], edx
pop esi
jmp 0x100205ea
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x78], edx
mov dword [esp + 0x88], eax
mov byte [edx], 0x70
mov ebx, dword [esp + 0x14]
jmp 0x1001efff
cmp al, 0x39
ja 0x1001f00a
imul ecx, ecx, 0xa
movzx eax, al
add ecx, 0xffffffd0
add ecx, eax
inc ebx
mov dword [esp + 0x14], ebx
mov al, byte [ebx]
cmp al, 0x30
jae 0x1001eff0
cmp byte [ebx], 0x29
jne 0x1002122e
cmp ecx, 0xff
jg 0x1002121f
mov byte [edx + 1], cl
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
sub eax, dword [ecx + 0x18]
inc eax
sar eax, 8
mov byte [edx + 2], al
mov al, byte [esp + 0x14]
sub al, byte [ecx + 0x18]
inc al
mov word [edx + 4], di
mov byte [edx + 3], al
add edx, 6
mov ebx, dword [esp + 0x14]
xor ebp, ebp
mov dword [esp + 0x10], edx
mov esi, edx
mov dword [esp + 0x38], ebp
jmp 0x1001ebfd
mov dword [esp + 0x24], 0x7b
lea eax, [ebx + 1]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov ebx, edi
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov byte [esi], dl
and dword [esp + 0x7c], 0
mov dword [esp + 0x38], esi
mov ebp, dword [eax + 0x58]
mov dword [esp + 0x4c], esi
mov esi, dword [eax + 0x38]
cmp edx, 0x79
je 0x1001f09e
cmp edx, 0x7a
je 0x1001f09e
xor ecx, ecx
and dword [esp + 0x80], 0
lea eax, [esp + 0x7c]
cmp dword [esp + 0x5c], 0
cmove eax, dword [esp + 0x80]
push eax
push dword [esp + 0x1c]
lea eax, [esp + 0x94]
push dword [esp + 0xb8]
push eax
lea eax, [esp + 0xb4]
push eax
xor eax, eax
cmp edx, 0x81
sete al
add eax, dword [esp + 0x13c]
push eax
push edi
push ebx
push ecx
push dword [esp + 0x4c]
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x78]
push eax
push dword [esp + 0x9c]
call fcn.10021424
add esp, 0x34
test eax, eax
je 0x100211cc
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
cmp eax, 0x7b
jne 0x10020425
cmp dword [ecx + 0x38], esi
jg 0x10020499
mov ebx, dword [esp + 0x10]
mov byte [ebx], 0x7c
jmp 0x10020429
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], 0x77
inc dword [eax + 0x4c]
jmp 0x1001f064
mov al, byte [ebx + 1]
cmp al, 0x21
je 0x1001f34a
cmp al, 0x3d
je 0x1001f333
mov dl, cl
mov edi, ebx
movzx ecx, al
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
test byte [ecx + eax], 0x10
je 0x1002126a
push 0x27
pop eax
mov esi, eax
lea ebp, [edi + 1]
push 0x3e
cmp dl, 0x3c
mov dword [esp + 0x38], ebp
pop eax
cmove esi, eax
mov ebx, ebp
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
jmp 0x1001f194
inc ebx
mov dword [esp + 0x14], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x1001f193
mov edx, ebx
sub edx, ebp
cmp dword [esp + 0x5c], 0
mov dword [esp + 0x30], edx
je 0x1001f1f5
movzx eax, byte [ebx]
cmp eax, esi
jne 0x1002135a
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + 0x2c]
cmp ecx, 0x2710
jge 0x1002123d
lea eax, [edx + 3]
cmp eax, dword [esi + 0x30]
jle 0x1001f30a
mov dword [esi + 0x30], eax
cmp edx, 0x20
jle 0x1001f30a
mov eax, dword [esp + 0x28]
mov dword [eax], 0x30
jmp 0x10021403
mov eax, dword [esp + 0x18]
xor esi, esi
xor ebp, ebp
mov edi, dword [eax + 0x28]
cmp dword [eax + 0x2c], esi
jle 0x1001f29a
mov ebx, dword [esp + 0x34]
jmp 0x1001f213
mov edx, dword [esp + 0x30]
push edx
lea eax, [edi + 2]
push eax
push ebx
call sub.vcruntime140.dll_memcmp
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x1001f264
mov eax, dword [esp + 0x30]
cmp byte [edi + eax + 2], dl
jne 0x1001f25d
movzx eax, byte [edi]
movzx ecx, byte [edi + 1]
shl eax, 8
or ecx, eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
inc eax
cmp ecx, eax
je 0x1001f257
test dword [esp + 0x40], 0x80000
je 0x1002124c
mov ebp, dword [esp + 0x1c]
jmp 0x1001f262
or eax, 0xffffffff
mov edx, eax
test edx, edx
mov eax, dword [esp + 0x18]
js 0x1001f275
add edi, dword [eax + 0x30]
inc esi
cmp esi, dword [eax + 0x2c]
jl 0x1001f20f
jmp 0x1001f292
mov ecx, dword [eax + 0x30]
mov eax, dword [eax + 0x2c]
sub eax, esi
imul eax, ecx
push eax
lea eax, [edi + ecx]
push edi
push eax
call fcn.1002b259
mov eax, dword [esp + 0x24]
add esp, 0xc
test ebp, ebp
jne 0x1001f2d4
mov ebx, dword [esp + 0x14]
mov edx, dword [eax + 0x28]
xor esi, esi
cmp dword [eax + 0x2c], esi
jle 0x1001f2d4
cmp edx, edi
je 0x1001f2ca
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
shl eax, 8
or ecx, eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x38]
inc eax
cmp ecx, eax
je 0x1002125b
mov eax, dword [esp + 0x18]
jmp 0x1001f2cb
dec esi
add edx, dword [eax + 0x30]
inc esi
cmp esi, dword [eax + 0x2c]
jl 0x1001f2a4
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x30]
push ebx
push dword [esp + 0x38]
mov eax, dword [esi + 0x38]
inc eax
sar eax, 8
mov byte [edi], al
mov al, byte [esi + 0x38]
inc al
mov byte [edi + 1], al
lea eax, [edi + 2]
push eax
call sub.vcruntime140.dll_memcpy
mov byte [edi + ebx + 2], 0
add esp, 0xc
mov ecx, dword [esi + 0x2c]
mov ebx, dword [esp + 0x14]
lea eax, [ecx + 1]
inc ebx
mov dword [esi + 0x2c], eax
mov dword [esp + 0x14], ebx
inc dword [esi + 0x38]
mov eax, dword [esi + 0x38]
mov edx, dword [esp + 0x10]
sar eax, 8
push 2
pop edi
mov byte [edx + 3], al
mov al, byte [esi + 0x38]
mov byte [edx + 4], al
jmp 0x1001edb5
mov dword [esp + 0x24], 0x79
mov eax, dword [esp + 0x18]
inc dword [eax + 0x4c]
lea eax, [ebx + 2]
jmp 0x1001f067
mov dword [esp + 0x24], 0x7a
jmp 0x1001f33b
test ecx, 0x1000
je 0x1001f315
push 0x7d
pop edx
mov dword [esp + 0x24], edx
jmp 0x1001f06f
and dword [esp + 0x38], 0
test byte [esp + 0x40], 2
setne al
add al, 0x1b
mov byte [ecx], al
inc ecx
mov dword [esp + 0x10], ecx
mov esi, ecx
jmp 0x100211a6
mov edx, dword [esp + 0x1c]
xor eax, eax
jmp 0x1001e8d4
mov eax, edx
sub eax, 0x5b
je 0x10020923
sub eax, 1
je 0x10020101
sub eax, 1
je 0x100200e5
sub eax, 1
je 0x100200b8
sub eax, 0x1d
je 0x1001f42c
sub eax, 1
je 0x1002127a
mov ebp, dword [esp + 0x58]
mov eax, dword [esp + 0x1c]
test byte [esp + 0x40], al
mov dword [esp + 0x38], ecx
setne al
add al, 0x1d
mov byte [ecx], al
lea eax, [ecx + 1]
mov byte [ecx + 1], dl
add ecx, 2
mov dword [esp + 0x10], ecx
cmp dl, 0xd
je 0x1001f3f2
cmp dl, 0xa
jne 0x1001f3f9
or dword [esi + 0x54], 0x800
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x68], ebp
cmp edi, 0xfffffffe
jne 0x1002111b
or eax, 0xffffffff
mov dword [esp + 0x70], eax
movzx eax, dl
or eax, dword [esp + 0x98]
mov dword [esp + 0x44], eax
jmp 0x10021130
test edi, edi
je 0x1001f3c4
mov esi, dword [esp + 0x28]
lea eax, [esp + 0x74]
push esi
push eax
lea eax, [esp + 0x68]
push eax
lea eax, [ebx + 1]
push eax
call fcn.1002b259
add esp, 0x10
mov ebx, eax
cmp dword [esi], 0
mov dword [esp + 0x14], ebx
jne 0x10021403
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x24], edx
test ebp, ebp
je 0x100212d2
test eax, eax
jne 0x1001f482
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x58], ecx
xor esi, esi
mov ecx, 0x20000000
cmp eax, edx
mov dword [esp + 0x50], esi
mov eax, ebp
cmove ecx, esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x34], eax
lea eax, [ebx + 1]
mov dword [esp + 0x80], ecx
mov cl, byte [eax]
cmp cl, 0x2b
jne 0x1001f4bb
and dword [esp + 0x20], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x50], esi
jmp 0x1001f4cb
cmp cl, 0x3f
jne 0x1001f4d3
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x20], ecx
mov ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x1001f4de
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x20], eax
cmp byte [ebp], 0x6f
jne 0x1001f571
push 3
lea eax, [ebp + 3]
push ebp
push eax
call fcn.1002b259
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov word [ebp], 0x7b
add edi, 6
cmp dword [esp + 0x5c], 0
mov byte [ebp + 2], 6
mov word [ebp + 6], 0x72
mov byte [ebp + 8], 6
mov dword [esp + 0x10], edi
mov dword [esp + 0x7c], 9
jne 0x1001f55f
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x24]
add eax, 2
cmp edx, eax
jb 0x1001f55f
movzx eax, byte [edx - 2]
movzx ecx, byte [edx - 1]
shl eax, 8
or ecx, eax
mov eax, ebp
sub eax, dword [ebx + 0x14]
inc eax
cmp ecx, eax
jne 0x1001f55f
lea eax, [ecx + 3]
shr eax, 8
add cl, 3
mov byte [edx - 2], al
mov eax, dword [ebx + 0x24]
mov byte [eax - 1], cl
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x34], eax
jmp 0x1001f575
mov edi, dword [esp + 0x10]
mov cl, byte [ebp]
cmp cl, 0x1d
je 0x1001fc82
cmp cl, 0x1e
je 0x1001fc82
cmp cl, 0x1f
je 0x1001fc82
cmp cl, 0x20
je 0x1001fc82
cmp cl, 0x17
jae 0x1001f5f5
movzx eax, cl
mov dword [esp + 0x34], 0x34
mov dword [esp + 0x30], eax
test esi, esi
jne 0x1001fcf5
test edx, edx
jns 0x1001fcf5
push dword [esp + 0x18]
lea eax, [ebx + 1]
push dword [esp + 0x44]
push eax
push esi
push ebp
call fcn.1001d823
mov ebp, dword [esp + 0x74]
mov ebx, dword [esp + 0x28]
add esp, 0x14
test eax, eax
je 0x1001fcf9
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 0x50], eax
jmp 0x1001fcfd
cmp cl, 0x6a
je 0x1001fbfc
cmp cl, 0x6b
je 0x1001fbfc
cmp cl, 0x6d
je 0x1001fbfc
cmp cl, 0x6e
je 0x1001fbfc
lea eax, [ecx - 0x77]
cmp al, 0xa
ja 0x1001fbe4
mov esi, dword [esp + 0x10]
xor edi, edi
mov eax, esi
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x38]
sub eax, ebp
xor ebp, ebp
mov dword [esp + 0x48], eax
mov dword [esp + 0x6c], ebp
cmp cl, 0x81
jne 0x1001f64f
cmp byte [edi + 3], 0x8b
je 0x100200a0
cmp cl, 0x7b
mov ecx, dword [esp + 0x60]
jae 0x1001f675
test ecx, ecx
jg 0x100200a0
test edx, edx
js 0x1001f669
cmp edx, 1
jle 0x1001f675
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x74], edx
test ecx, ecx
jne 0x1001f729
push dword [esp + 0x54]
mov ebx, dword [esp + 0x14]
lea esi, [edi + 1]
push dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
push ecx
mov byte [ebx], cl
cmp edx, eax
jg 0x1001f6d1
push eax
push edi
call fcn.1001d76a
push dword [esp + 0x5c]
push edi
push esi
call fcn.1002b259
mov edx, dword [esp + 0x44]
add esp, 0x20
inc ebx
mov dword [esp + 0x10], ebx
test edx, edx
jne 0x1001f6c1
mov byte [edi], 0x9b
jmp 0x10020098
mov al, byte [esp + 0x20]
mov ebp, edi
sub al, 0x74
mov dword [esp + 0x38], esi
mov byte [edi], al
jmp 0x1001f71b
push 4
pop eax
push eax
push edi
call fcn.1001d76a
push dword [esp + 0x5c]
lea eax, [edi + 4]
push edi
push eax
call fcn.1002b259
mov edx, dword [esp + 0x44]
add esp, 0x20
push 4
pop eax
add ebx, eax
mov al, byte [esp + 0x20]
sub al, 0x74
mov dword [esp + 0x10], ebx
mov byte [edi], al
mov edi, esi
mov eax, edi
mov byte [edi], 0x7d
inc edi
mov byte [eax + 2], 0
add eax, 3
mov dword [esp + 0x30], edi
mov dword [esp + 0x38], eax
mov byte [edi], 0
mov ebx, dword [esp + 0x14]
dec edx
mov esi, dword [esp + 0x4c]
jmp 0x1001f8a6
cmp ecx, 1
jle 0x1001f89c
cmp dword [esp + 0x5c], ebp
je 0x1001f782
lea eax, [ecx - 1]
mov esi, eax
imul dword [esp + 0x7c]
imul esi, dword [esp + 0x7c]
test edx, edx
jg 0x1002131a
jl 0x1001f75b
cmp eax, 0x7fffffff
ja 0x1002131a
mov edx, dword [esp + 0x5c]
mov eax, 0x7fffffeb
mov ecx, dword [edx]
sub eax, ecx
cmp eax, esi
jl 0x1002131a
lea eax, [ecx + esi]
mov ecx, dword [esp + 0x60]
mov dword [edx], eax
mov edx, dword [esp + 0x24]
jmp 0x1001f89c
cmp dword [esp + 0x90], ebp
je 0x1001f79a
mov ebp, dword [esp + 0x58]
test ebp, ebp
cmovs ebp, dword [esp + 0x44]
mov dword [esp + 0x58], ebp
xor ebp, ebp
inc ebp
mov dword [esp + 0x84], ebp
cmp ecx, ebp
jle 0x1001f898
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov esi, dword [edx + 0x24]
push eax
push edi
push ebx
call sub.vcruntime140.dll_memcpy
mov edx, dword [esp + 0x24]
add esp, 0xc
mov eax, dword [edx + 0x34]
mov edi, dword [edx + 0x10]
sub eax, esi
add eax, 0xffffff9c
add eax, dword [esp + 0x54]
add eax, edi
jmp 0x1001f813
push edx
call fcn.10021b77
pop ecx
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
test eax, eax
jne 0x100211cc
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x10]
mov eax, ecx
sub eax, edi
add dword [esp + 0x54], eax
mov eax, ecx
sub eax, edi
mov edi, ecx
add esi, eax
mov eax, dword [edx + 0x34]
sub eax, esi
add eax, 0xffffff9c
add eax, dword [esp + 0x54]
add eax, ecx
cmp dword [edx + 0x24], eax
ja 0x1001f7d9
cmp dword [esp + 0x54], esi
jae 0x1001f860
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x54]
movzx ecx, byte [ebp]
movzx eax, byte [ebp + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [edi + 0x24]
add ecx, edx
sar ecx, 8
mov byte [eax], cl
mov cl, byte [ebp + 1]
add ebp, 2
mov eax, dword [edi + 0x24]
add cl, dl
mov byte [eax + 1], cl
add dword [edi + 0x24], 2
cmp ebp, esi
jb 0x1001f82a
mov ebp, dword [esp + 0x84]
mov edx, edi
mov eax, dword [esp + 0x48]
add ebx, eax
mov ecx, dword [esp + 0x60]
inc ebp
mov edi, dword [esp + 0x38]
mov dword [esp + 0x54], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x84], ebp
cmp ebp, ecx
jl 0x1001f7b4
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x6c]
jmp 0x1001f8a0
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x34]
test edx, edx
jle 0x1001f8ac
sub edx, ecx
mov dword [esp + 0x74], edx
test edx, edx
js 0x1001fab7
mov edi, dword [esp + 0x5c]
test edi, edi
je 0x1001f8ff
test edx, edx
jle 0x1001f8ff
mov eax, dword [esp + 0x7c]
add eax, 7
mov ecx, eax
imul ecx, edx
imul edx
sub ecx, 6
test edx, edx
jg 0x1002131a
jl 0x1001f8e4
cmp eax, 0x7fffffff
ja 0x1002131a
mov edx, dword [edi]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jl 0x1002131a
lea eax, [edx + ecx]
mov dword [edi], eax
jmp 0x1001fa61
lea edi, [edx - 1]
mov dword [esp + 0x34], edi
test edi, edi
js 0x1001fa61
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
sub cl, 0x74
mov edx, dword [esp + 0x10]
mov esi, dword [ebx + 0x24]
mov dword [esp + 0x20], ecx
mov byte [edx], cl
mov ebp, esi
inc edx
mov dword [esp + 0x10], edx
test edi, edi
je 0x1001f964
lea ecx, [edx + 1]
mov byte [edx], 0x7d
mov edx, dword [esp + 0x30]
mov eax, ecx
sub eax, edx
mov edi, ecx
neg edx
mov dword [esp + 0x30], edi
sbb edx, edx
and edx, eax
mov eax, edx
mov byte [ecx + 1], dl
sar eax, 8
lea edx, [ecx + 2]
mov byte [ecx], al
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], edx
push eax
push dword [esp + 0x3c]
push edx
call sub.vcruntime140.dll_memcpy
mov eax, dword [ebx + 0x34]
add esp, 0xc
mov edi, dword [ebx + 0x10]
sub eax, esi
mov esi, dword [esp + 0x54]
add eax, 0xffffff9c
add eax, esi
add eax, edi
jmp 0x1001f9bd
push ebx
call fcn.10021b77
pop ecx
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
test eax, eax
jne 0x100211cc
mov ecx, dword [ebx + 0x10]
mov eax, ecx
sub eax, edi
add esi, eax
mov eax, ecx
sub eax, edi
mov dword [esp + 0x54], esi
add ebp, eax
mov edi, ecx
mov eax, dword [ebx + 0x34]
sub eax, ebp
add eax, 0xffffff9c
add eax, esi
add eax, ecx
mov edx, dword [ebx + 0x24]
cmp edx, eax
ja 0x1001f987
mov eax, dword [esp + 0x54]
mov esi, edx
mov edi, dword [esp + 0x34]
cmp eax, ebp
jae 0x1001fa36
mov edx, dword [esp + 0x1c]
test edi, edi
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
push 4
pop esi
cmovne edx, esi
cmovne ebx, esi
movzx ecx, byte [eax]
movzx eax, byte [eax + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [edi + 0x24]
add ecx, dword [esp + 0x48]
add ecx, edx
sar ecx, 8
mov byte [eax], cl
mov eax, dword [esp + 0x54]
mov cl, byte [eax + 1]
mov eax, dword [edi + 0x24]
add cl, byte [esp + 0x48]
add cl, bl
mov byte [eax + 1], cl
mov eax, dword [esp + 0x54]
mov esi, dword [edi + 0x24]
add eax, 2
add esi, 2
mov dword [esp + 0x54], eax
mov dword [edi + 0x24], esi
cmp eax, ebp
jb 0x1001f9e9
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
add edx, eax
mov ecx, dword [esp + 0x20]
sub edi, 1
mov dword [esp + 0x54], ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], edi
jns 0x1001f928
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
test edi, edi
je 0x1001fd7a
mov ebx, ecx
mov edx, ecx
sub ebx, edi
inc ebx
sub edx, ebx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
mov eax, ebx
sub edi, ecx
neg ecx
sbb ecx, ecx
sar eax, 8
and edi, ecx
mov ecx, dword [esp + 0x10]
mov byte [ecx], 0x72
mov byte [ecx + 1], al
mov byte [ecx + 2], bl
add ecx, 3
mov dword [esp + 0x10], ecx
mov byte [edx + 1], al
mov byte [edx + 2], bl
test edi, edi
jne 0x1001fa71
jmp 0x1001fd72
mov esi, dword [esp + 0x10]
lea ebx, [esi - 3]
movzx ecx, byte [ebx + 1]
mov edi, ebx
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
sub edi, ecx
mov al, byte [edi]
cmp al, 0x7b
je 0x1001fad9
cmp al, 0x7c
jne 0x1001fae5
cmp dword [esp + 0x50], 0
je 0x1001fae5
mov byte [edi], 0x7d
mov al, 0x7d
cmp al, 0x7b
je 0x1001fbd3
cmp al, 0x7c
je 0x1001fbd3
cmp dword [esp + 0x5c], 0
jne 0x1001fb32
mov esi, edi
push dword [esp + 0x18]
push 0
push ebx
push esi
call fcn.100217f3
add esp, 0x10
test eax, eax
jne 0x1001fb28
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x71
je 0x1001fafe
jmp 0x1001fb2e
mov al, byte [edi]
add al, 5
mov byte [edi], al
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x50], 0
je 0x1001fbc6
mov al, byte [edi]
cmp al, 0x81
je 0x1001fb54
cmp al, 0x86
je 0x1001fb54
mov ecx, dword [esp + 0x10]
inc al
mov byte [edi], al
mov byte [ebx], 0x75
jmp 0x1001fba1
push dword [esp + 0x54]
mov ebx, esi
mov byte [esi], 0
push dword [esp + 0x1c]
sub ebx, edi
push 0
push 3
push edi
call fcn.1001d76a
push ebx
lea eax, [edi + 3]
push edi
push eax
call fcn.1002b259
mov ecx, dword [esp + 0x30]
add ebx, 3
mov byte [edi], 0x7e
mov eax, ebx
sar eax, 8
add esp, 0x20
mov byte [ecx + 3], 0x75
mov byte [ecx + 4], al
mov byte [ecx + 5], bl
add ecx, 6
mov dword [esp + 0x10], ecx
mov byte [edi + 1], al
mov byte [edi + 2], bl
test ebp, ebp
je 0x1001fba9
mov byte [ebp], 0x8e
cmp dword [esp + 0x60], 2
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x4c]
jge 0x1001fd7a
and dword [esp + 0x50], 0
jmp 0x1001fd7a
mov eax, dword [esp + 0x20]
add al, 0x73
mov byte [ebx], al
jmp 0x10020080
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
add al, 0x73
mov byte [ebx], al
jmp 0x1001fd72
cmp cl, 0x97
je 0x1002009c
mov eax, dword [esp + 0x28]
mov dword [eax], 0xb
jmp 0x10021403
test edx, edx
jne 0x1001fc0b
mov esi, ebp
mov dword [esp + 0x10], esi
jmp 0x100200a0
mov ecx, dword [esp + 0x60]
test ecx, ecx
jne 0x1001fc37
or eax, 0xffffffff
cmp edx, eax
jne 0x1001fc22
mov eax, dword [esp + 0x20]
add al, 0x62
jmp 0x1001fc2e
cmp edx, dword [esp + 0x1c]
jne 0x1001fc4c
mov eax, dword [esp + 0x20]
add al, 0x66
mov ecx, dword [esp + 0x10]
jmp 0x1001fd6b
cmp ecx, dword [esp + 0x1c]
jne 0x1001fc4c
or eax, 0xffffffff
cmp edx, eax
jne 0x1001fc4c
mov eax, dword [esp + 0x20]
add al, 0x64
jmp 0x1001fc2e
mov eax, dword [esp + 0x20]
or ebx, 0xffffffff
add al, 0x68
mov byte [edi], al
mov eax, ecx
sar eax, 8
mov byte [edi + 1], al
xor eax, eax
cmp edx, ebx
mov byte [edi + 2], cl
lea ecx, [edi + 3]
cmove edx, eax
mov eax, edx
mov byte [ecx + 1], dl
sar eax, 8
mov byte [ecx], al
add ecx, 2
mov dword [esp + 0x74], edx
jmp 0x1001fd6e
movzx eax, cl
sub eax, 0x1e
je 0x1001fca3
sub eax, 1
je 0x1001fc9f
sub eax, 1
je 0x1001fc9b
and dword [esp + 0x34], 0
jmp 0x1001fcaa
push 0x27
jmp 0x1001fca5
push 0x1a
jmp 0x1001fca5
push 0xd
pop eax
mov dword [esp + 0x34], eax
movzx eax, byte [edi - 1]
cmp cl, 0x1e
mov ebp, dword [esp + 0x60]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x30], eax
ja 0x1001fcd5
cmp ebp, dword [esp + 0x1c]
jle 0x1001fcd5
mov edi, dword [ecx + 0x58]
or edi, eax
or edi, dword [esp + 0x98]
mov dword [esp + 0x58], edi
test esi, esi
jne 0x1001fcf9
test edx, edx
jns 0x1001fcf9
push ecx
push dword [esp + 0x44]
lea eax, [ebx + 1]
push eax
push esi
push dword [esp + 0x48]
call fcn.1001d823
jmp 0x1001f5d7
mov ebp, dword [esp + 0x60]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x38]
mov al, byte [edi]
cmp al, 0x10
je 0x1001fd17
cmp al, 0xf
je 0x1001fd17
or eax, 0xffffffff
lea edx, [edi + 1]
mov dword [esp + 0x48], eax
jmp 0x1001fd25
lea edx, [edi + 1]
movzx eax, byte [edx]
mov dword [esp + 0x48], eax
movzx eax, byte [edi + 2]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x20], eax
test edi, edi
je 0x1002009c
mov eax, dword [esp + 0x34]
add ecx, eax
test ebp, ebp
jne 0x1001fdd6
mov eax, edx
or ebx, 0xffffffff
mov edx, edi
mov dword [esp + 0x10], eax
cmp edx, ebx
jne 0x1001fda9
add cl, 0x21
mov eax, dword [esp + 0x38]
mov byte [eax], cl
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x10], ecx
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x4c]
cmp dword [esp + 0x50], 0
je 0x1002009c
mov al, byte [esi]
cmp al, 0x5d
jne 0x1001feea
mov al, byte [esi + 3]
cmp al, 0x10
je 0x1001fed8
cmp al, 0xf
je 0x1001fed8
xor ecx, ecx
jmp 0x1001fedb
mov dword [esp + 0x10], eax
cmp edx, dword [esp + 0x1c]
jne 0x1001fdb8
add cl, 0x25
jmp 0x1001fd5d
push 0x27
pop eax
add cl, al
mov eax, dword [esp + 0x38]
mov byte [eax], cl
mov eax, edx
mov ecx, dword [esp + 0x10]
sar eax, 8
mov byte [ecx], al
mov byte [ecx + 1], dl
add ecx, 2
jmp 0x1001fd67
cmp ebp, 1
jne 0x1001fe21
or eax, 0xffffffff
cmp edi, eax
jne 0x1001fdf2
mov eax, dword [esp + 0x38]
add cl, 0x23
mov byte [eax], cl
mov ecx, edx
jmp 0x1001fd67
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], esi
cmp edx, dword [esp + 0x1c]
je 0x1002009c
push 0x27
pop eax
add cl, al
lea eax, [edx - 1]
sar eax, 8
dec dl
mov byte [esi], cl
lea ecx, [esi + 3]
mov byte [esi + 1], al
mov byte [esi + 2], dl
jmp 0x1001fd67
mov esi, dword [esp + 0x38]
add al, 0x29
mov ebx, dword [esp + 0x24]
mov byte [esi], al
mov eax, ebp
sar eax, 8
mov byte [edx], al
mov eax, dword [esp + 0x60]
mov byte [edx + 1], al
add edx, 2
mov dword [esp + 0x10], edx
test ebx, ebx
jns 0x1001fe70
mov eax, dword [esp + 0x30]
mov byte [edx], al
inc edx
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], edx
test eax, eax
js 0x1001fe6b
mov byte [edx], al
lea eax, [edx + 1]
mov edx, dword [esp + 0x20]
mov byte [eax], dl
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
add cl, 0x21
jmp 0x1001feae
cmp ebx, eax
je 0x1001fd63
mov eax, dword [esp + 0x30]
mov byte [edx], al
inc edx
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], edx
test eax, eax
js 0x1001fe9d
mov byte [edx], al
lea eax, [edx + 1]
mov edx, dword [esp + 0x20]
mov byte [eax], dl
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
sub ebx, dword [esp + 0x60]
mov dword [esp + 0x74], ebx
cmp ebx, dword [esp + 0x1c]
jne 0x1001feba
add cl, 0x25
mov byte [edx], cl
mov ecx, dword [esp + 0x10]
inc ecx
jmp 0x1001fd67
push 0x27
pop eax
add cl, al
mov eax, ebx
mov byte [edx], cl
mov ecx, dword [esp + 0x10]
sar eax, 8
mov byte [ecx + 1], al
mov byte [ecx + 2], bl
add ecx, 3
jmp 0x1001fd67
push 2
pop ecx
movzx eax, byte [0x100887cd]
add eax, ecx
mov ecx, dword [esp + 0x10]
jmp 0x1001fefc
cmp al, 0x29
je 0x1001fef2
cmp al, 0x43
jne 0x1001ff02
movzx eax, al
movzx eax, byte [eax + 0x10088770]
add esi, eax
mov dword [esp + 0x4c], esi
mov eax, ecx
sub eax, esi
mov dword [esp + 0x6c], eax
test eax, eax
jle 0x1002009c
movzx eax, byte [esi]
cmp eax, 0x3f
ja 0x1001ffbd
je 0x1001ffb5
cmp eax, 0x30
ja 0x1001ff7b
je 0x1001ff73
sub eax, 0x21
je 0x1001ff6b
dec eax
sub eax, 1
je 0x1001ff63
dec eax
sub eax, 1
je 0x1001ff5b
dec eax
sub eax, 1
je 0x1001ff53
sub eax, 7
jne 0x1002001d
mov byte [esi], 0x37
jmp 0x10020098
mov byte [esi], 0x2d
jmp 0x10020098
mov byte [esi], 0x2c
jmp 0x10020098
mov byte [esi], 0x2b
jmp 0x10020098
mov byte [esi], 0x2a
jmp 0x10020098
mov byte [esi], 0x38
jmp 0x10020098
sub eax, 0x32
je 0x1001ffad
dec eax
sub eax, 1
je 0x1001ffa5
sub eax, 7
je 0x1001ff9d
dec eax
sub eax, 1
jne 0x1002001d
mov byte [esi], 0x45
jmp 0x10020098
mov byte [esi], 0x44
jmp 0x10020098
mov byte [esi], 0x3a
jmp 0x10020098
mov byte [esi], 0x39
jmp 0x10020098
mov byte [esi], 0x46
jmp 0x10020098
cmp eax, 0x4e
ja 0x10020002
je 0x1001fffa
sub eax, 0x41
je 0x1001fff2
sub eax, 7
je 0x1001ffea
dec eax
sub eax, 1
je 0x1001ffe2
dec eax
sub eax, 1
jne 0x1002001d
mov byte [esi], 0x53
jmp 0x10020098
mov byte [esi], 0x52
jmp 0x10020098
mov byte [esi], 0x51
jmp 0x10020098
mov byte [esi], 0x47
jmp 0x10020098
mov byte [esi], 0x54
jmp 0x10020098
sub eax, 0x55
je 0x10020095
dec eax
sub eax, 1
je 0x10020090
dec eax
sub eax, 1
je 0x1002008b
dec eax
sub eax, 1
je 0x10020086
push dword [esp + 0x54]
mov byte [ecx], 0
push dword [esp + 0x1c]
push 0
push 3
push dword [esp + 0x5c]
call fcn.1001d76a
mov ebx, dword [esp + 0x80]
mov eax, dword [esp + 0x60]
push ebx
push eax
add eax, 3
push eax
call fcn.1002b259
mov eax, dword [esp + 0x6c]
add ebx, 3
mov esi, dword [esp + 0x30]
mov ecx, ebx
sar ecx, 8
add esp, 0x20
mov byte [eax], 0x7b
mov byte [esi + 3], 0x72
mov byte [esi + 4], cl
mov byte [esi + 5], bl
add esi, 6
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x10], esi
mov byte [eax + 1], cl
mov eax, dword [esp + 0x4c]
mov byte [eax + 2], bl
mov ebx, dword [esp + 0x14]
jmp 0x100200a0
mov byte [esi], 0x61
jmp 0x10020098
mov byte [esi], 0x60
jmp 0x10020098
mov byte [esi], 0x5f
jmp 0x10020098
mov byte [esi], 0x5e
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
and dword [esp + 0x38], 0
mov eax, dword [esp + 0x80]
or dword [ecx + 0x58], eax
jmp 0x1001e9fe
and dword [esp + 0x38], 0
test byte [esp + 0x40], 2
je 0x100200dd
mov eax, dword [esp + 0x44]
cmp eax, 0xfffffffe
push 0xffffffffffffffff
pop edx
cmove eax, edx
mov byte [ecx], 0x1a
mov dword [esp + 0x44], eax
jmp 0x1001f379
mov byte [ecx], 0x19
jmp 0x1001f379
test dword [esi + 0x50], 0x2000000
je 0x1001f3c4
mov eax, dword [esp + 0x28]
mov dword [eax], 0x40
jmp 0x10021403
push 0
push dword [esp + 0x44]
lea eax, [esp + 0x1c]
mov dword [esp + 0x9c], ebx
push dword [esi + 0x38]
mov esi, dword [esp + 0x34]
push esi
push eax
call fcn.1001ddf4
add esp, 0x14
mov edx, eax
cmp dword [esi], 0
jne 0x100211cc
test edx, edx
jns 0x100210fa
mov ecx, edx
neg ecx
cmp ecx, 0x1a
jne 0x10020164
mov ebx, dword [esp + 0x14]
cmp byte [ebx + 1], 0x5c
jne 0x10020157
cmp byte [ebx + 2], 0x45
jne 0x10020157
add ebx, 2
jmp 0x1001ebf5
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
jmp 0x1001ebf5
cmp ecx, 0x19
je 0x1002091a
mov edi, dword [esp + 0x44]
cmp edi, 0xfffffffe
jne 0x10020186
lea eax, [ecx - 6]
cmp eax, 0x10
push 0xffffffffffffffff
pop eax
cmovbe edi, eax
mov dword [esp + 0x44], edi
mov eax, dword [esp + 0x58]
mov dword [esp + 0x70], edi
mov dword [esp + 0x68], eax
cmp ecx, 0x1b
jne 0x100205a1
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
inc ebx
push 0x27
mov eax, dword [ecx + 0x24]
mov dword [esp + 0x58], eax
pop eax
mov dword [esp + 0x14], ebx
lea ebp, [ebx + 1]
cmp byte [ebx], 0x3c
mov esi, eax
push 0x3e
pop eax
cmove esi, eax
mov dword [esp + 0x80], ebp
mov al, byte [ebp]
mov dword [esp + 0x30], esi
cmp al, 0x2b
je 0x1002024a
cmp al, 0x2d
je 0x1002024a
mov edx, dword [esp + 0x1c]
lea esi, [ebx + 1]
cmp byte [esi], 0
mov edi, edx
je 0x10020223
mov dl, al
mov ebp, ecx
movzx ecx, dl
mov al, dl
cmp ecx, dword [esp + 0x30]
je 0x10020214
mov eax, dword [ebp + 0xc]
push 0
mov cl, byte [ecx + eax]
test cl, 4
pop eax
cmovne eax, edi
mov edi, eax
mov al, dl
test cl, 0x10
je 0x10020214
inc esi
mov al, byte [esi]
mov dl, al
test al, al
jne 0x100201e8
mov ebp, dword [esp + 0x80]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x30]
movzx eax, al
cmp eax, esi
je 0x1002023d
mov eax, dword [esp + 0x28]
mov dword [eax], 0x39
jmp 0x10021130
test edi, edi
jne 0x10020274
mov dword [esp + 0x30], edx
jmp 0x100205ea
lea ecx, [ebx + 2]
jmp 0x10020254
cmp al, 0x39
ja 0x1002025a
inc ecx
mov al, byte [ecx]
cmp al, 0x30
jae 0x1002024f
movzx eax, byte [ecx]
cmp eax, esi
je 0x10020274
mov eax, dword [esp + 0x28]
mov dword [eax], 0x39
mov esi, dword [esp + 0x10]
jmp 0x100211aa
mov edi, dword [esp + 0x30]
mov ebx, ebp
mov dword [esp + 0x14], ebx
mov dh, byte [ebx]
cmp dh, 0x2b
jne 0x10020309
inc ebx
mov dword [esp + 0x14], ebx
mov al, byte [ebx]
cmp al, 0x30
jb 0x100212dd
cmp al, 0x39
ja 0x100212dd
mov ebp, ebx
mov al, byte [ebx]
xor ecx, ecx
mov dword [esp + 0x20], ecx
cmp al, 0x30
jb 0x100202d0
cmp al, 0x39
ja 0x100202cc
imul ecx, ecx, 0xa
lea ebx, [ebp + 1]
movzx eax, al
mov ebp, ebx
mov dword [esp + 0x14], ebx
add ecx, 0xffffffd0
add ecx, eax
mov al, byte [ebx]
cmp al, 0x30
jae 0x100202ae
mov dword [esp + 0x20], ecx
movzx eax, byte [ebx]
cmp eax, edi
jne 0x1002134b
cmp dh, 0x2d
jne 0x10020580
test ecx, ecx
je 0x1002133c
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x38]
sub eax, ecx
lea ecx, [eax + 1]
mov dword [esp + 0x20], ecx
test ecx, ecx
jle 0x1002138b
jmp 0x10020753
cmp dh, 0x2d
jne 0x100202a2
mov al, byte [ebx + 1]
mov esi, ebp
mov dl, dh
cmp al, 0x30
jb 0x1001eb53
cmp al, 0x39
ja 0x1001eb53
lea ebx, [ebp + 1]
mov dword [esp + 0x14], ebx
jmp 0x100202a0
or dword [eax], 0x200
jmp 0x1002037d
mov ecx, dword [esp + 0x18]
or dword [eax], 0x80000
or dword [ecx + 0x54], 0x400
jmp 0x1002037d
lea eax, [esp + 0x84]
jmp 0x1002037d
mov ecx, dword [esp + 0x1c]
or dword [eax], ecx
jmp 0x1002037d
cmp dl, 0x6d
je 0x1002037a
cmp dl, 0x73
je 0x10020375
cmp dl, 0x78
jne 0x100212ec
or dword [eax], 8
jmp 0x1002037d
push 4
pop ecx
jmp 0x10020359
or dword [eax], 2
mov dl, byte [ebx]
mov esi, ebx
mov ecx, ebx
cmp dl, 0x29
jne 0x1001eb71
mov ebp, dword [esp + 0x6c]
mov ecx, dword [esp + 0x84]
or ebp, dword [esp + 0x40]
not ecx
and ebp, ecx
cmp byte [ebx], 0x29
mov dword [esp + 0x6c], ebp
jne 0x1002040d
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [ecx + 0x14]
add eax, 3
cmp esi, eax
jne 0x100203cc
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x100203c7
cmp dword [eax], 6
jne 0x100203cc
mov dword [ecx + 0x50], ebp
jmp 0x100203f5
mov edx, dword [esp + 0x1c]
mov eax, ebp
shr eax, 9
and eax, edx
mov dword [esp + 0xa8], eax
xor eax, edx
mov dword [esp + 0xac], eax
mov eax, ebp
and eax, edx
shl eax, 0x1c
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x40], ebp
mov dword [eax], ebp
xor ebp, ebp
mov dword [esp + 0x38], ebp
jmp 0x1001ebfd
lea eax, [esi + 1]
mov dword [esp + 0x24], 0x7d
xor ebx, ebx
mov dword [esp + 0x14], eax
xor edi, edi
jmp 0x1001edb9
mov ebx, dword [esp + 0x10]
cmp eax, 0x7a
ja 0x10020431
dec dword [ecx + 0x4c]
cmp eax, 0x81
jne 0x10020499
cmp dword [esp + 0x5c], 0
jne 0x10020499
mov edx, ebx
xor esi, esi
movzx ecx, byte [edx + 1]
mov edi, esi
movzx eax, byte [edx + 2]
inc esi
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x72
jne 0x10020443
cmp byte [ebx + 3], 0x8b
jne 0x10020471
cmp edi, dword [esp + 0x1c]
jge 0x100212fc
mov edx, 0x8b
jmp 0x1002049d
cmp edi, 2
jge 0x1002130b
cmp esi, dword [esp + 0x1c]
jne 0x10020499
mov edx, dword [esp + 0x24]
or ecx, 0xffffffff
mov eax, ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x8c], eax
jmp 0x100204ab
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x14]
cmp byte [ebx], 0x29
jne 0x1002132d
mov edi, dword [esp + 0x5c]
test edi, edi
je 0x100204f6
mov esi, dword [esp + 0x7c]
mov ecx, 0x7fffffeb
mov edx, dword [edi]
sub ecx, edx
lea eax, [esi - 6]
cmp ecx, eax
jl 0x1002131a
mov ecx, dword [esp + 0x10]
lea eax, [esi - 6]
add eax, edx
mov dword [edi], eax
mov dword [ecx + 1], 0x720300
mov byte [ecx + 5], 3
add ecx, 6
jmp 0x1001f37a
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x10], esi
cmp edx, 0x8b
je 0x100211aa
mov edi, dword [esp + 0x58]
and dword [esp + 0x90], 0
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x70], edi
cmp edx, 0x7b
jb 0x10020575
cmp edi, 0xfffffffe
jne 0x10020551
test ecx, ecx
js 0x10020544
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x90], ecx
or ecx, 0xffffffff
jmp 0x1002054b
or ecx, 0xffffffff
mov dword [esp + 0x44], ecx
mov dword [esp + 0x70], ecx
jmp 0x10020564
test ecx, ecx
js 0x10020564
test eax, eax
jns 0x1002056c
mov eax, ecx
or eax, ebp
mov dword [esp + 0x8c], eax
test eax, eax
js 0x100211aa
mov dword [esp + 0x58], eax
jmp 0x100211aa
cmp edx, 0x77
jne 0x100211aa
jmp 0x10020564
cmp dh, 0x2b
jne 0x1002074b
test ecx, ecx
je 0x1002133c
mov esi, dword [esp + 0x18]
add ecx, dword [esi + 0x38]
mov dword [esp + 0x20], ecx
jmp 0x1002074f
cmp ecx, 0x1c
jne 0x10020897
mov ebx, dword [esp + 0x14]
push 0x27
pop edx
mov al, byte [ebx + 1]
cmp al, 0x3c
je 0x100205cb
cmp al, dl
je 0x100205cb
cmp al, 0x7b
je 0x100205cb
mov dword [esi], 0x45
jmp 0x1002026b
and dword [esp + 0x30], 0
inc ebx
mov dword [esp + 0x14], ebx
mov al, byte [ebx]
cmp al, 0x3c
jne 0x100205e2
push 0x3e
pop eax
mov esi, eax
jmp 0x100205ea
push 0x7d
cmp al, dl
pop esi
cmove esi, edx
mov edx, dword [esp + 0x18]
inc ebx
mov ebp, ebx
mov ecx, dword [edx + 0xc]
jmp 0x100205f7
inc ebx
mov dword [esp + 0x14], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x100205f6
mov edi, ebx
sub edi, ebp
cmp dword [esp + 0x5c], 0
je 0x10020669
test edi, edi
je 0x10021369
movzx eax, byte [ebx]
cmp eax, esi
jne 0x1002135a
cmp edi, 0x20
jg 0x1001f1e6
mov eax, dword [esp + 0x40]
mov esi, dword [edx + 0x1c]
push 0
shr eax, 3
and eax, dword [esp + 0x20]
push eax
push edi
push ebp
push edx
mov dword [edx + 0x1c], ebx
call fcn.1002b259
mov ecx, eax
add esp, 0x14
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov dword [eax + 0x1c], esi
mov esi, eax
test ecx, ecx
jns 0x100206e5
xor ecx, ecx
mov dword [esp + 0x20], ecx
jmp 0x100206e5
mov esi, dword [edx + 0x28]
xor ebx, ebx
cmp ebx, dword [edx + 0x2c]
jge 0x100206ba
push edi
lea eax, [esi + 2]
push eax
push ebp
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x1002068c
cmp byte [esi + edi + 2], al
je 0x1002069b
mov edx, dword [esp + 0x18]
add esi, dword [edx + 0x30]
inc ebx
cmp ebx, dword [edx + 0x2c]
jl 0x10020673
jmp 0x1002069f
mov edx, dword [esp + 0x18]
cmp ebx, dword [edx + 0x2c]
jge 0x100206ba
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
mov esi, dword [esp + 0x18]
shl eax, 8
or ecx, eax
mov dword [esp + 0x20], ecx
jmp 0x100206e5
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x18]
push 0
shr eax, 3
and eax, dword [esp + 0x20]
push eax
push edi
push ebp
push esi
call fcn.1002b259
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x20], ecx
test ecx, ecx
jle 0x10021387
cmp dword [esp + 0x30], 0
jne 0x10020753
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x10]
cmp edi, 0xfffffffe
mov ebx, dword [esp + 0x1c]
mov ebp, esi
push 0xffffffffffffffff
pop eax
cmove edi, eax
mov dword [esp + 0x38], ebp
test byte [esp + 0x40], bl
mov edx, ebx
mov dword [esp + 0x44], edi
setne al
shl edx, cl
add al, 0x6d
mov byte [esi], al
mov eax, ecx
sar eax, 8
mov byte [esi + 1], al
mov eax, ebx
mov byte [esi + 2], cl
add esi, 3
cmp ecx, 0x20
mov dword [esp + 0x10], esi
cmovl eax, edx
mov edx, dword [esp + 0x18]
or dword [edx + 0x48], eax
cmp ecx, dword [edx + 0x44]
jle 0x10020743
mov dword [edx + 0x44], ecx
mov edx, dword [edx + 0x20]
jmp 0x100208b0
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x5c], 0
mov edx, dword [esp + 0x10]
mov ebp, edx
mov ebx, dword [esi + 0x14]
mov dword [esp + 0x38], ebp
jne 0x10020857
mov byte [edx], 0
test ecx, ecx
je 0x10020788
push ecx
push 0
push dword [esi + 0x14]
call fcn.1001d67d
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov ebx, eax
mov edx, ebp
test ebx, ebx
jne 0x100207fb
mov eax, dword [esp + 0x40]
push ebx
shr eax, 3
and eax, dword [esp + 0x20]
push eax
push ecx
push ebx
push esi
call fcn.1002b259
add esp, 0x14
test eax, eax
js 0x10021387
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
add eax, 0xffffff9c
add eax, dword [esi + 0x34]
add ebx, dword [esp + 0x20]
cmp dword [esi + 0x24], eax
jb 0x100207d6
push esi
call fcn.10021b77
pop ecx
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
test eax, eax
jne 0x100211cc
mov edx, dword [esp + 0x10]
mov ecx, edx
sub ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x24]
inc ecx
sar ecx, 8
mov byte [eax], cl
mov cl, dl
sub cl, byte [esi + 0x14]
mov eax, dword [esi + 0x24]
inc cl
mov byte [eax + 1], cl
add dword [esi + 0x24], 2
jmp 0x1002085b
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
jne 0x10020857
cmp dword [esp + 0x128], ecx
jg 0x10020857
mov eax, dword [esp + 0xb0]
mov esi, eax
test eax, eax
je 0x10021378
cmp dword [esi + 4], ebx
jb 0x10021378
push dword [esp + 0x18]
push 0
push edx
push dword [esi + 4]
call fcn.100217f3
add esp, 0x10
test eax, eax
je 0x10020853
mov esi, dword [esi]
test esi, esi
je 0x10021378
mov edx, dword [esp + 0x10]
jmp 0x10020824
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
and dword [esp + 0x90], 0
mov eax, ebx
mov byte [edx], 0x6f
sub eax, dword [esi + 0x14]
sar eax, 8
mov byte [edx + 1], al
sub bl, byte [esi + 0x14]
mov byte [edx + 2], bl
add edx, 3
cmp dword [esp + 0x44], 0xfffffffe
mov esi, edx
mov dword [esp + 0x10], edx
jne 0x1001ec1f
or eax, 0xffffffff
mov dword [esp + 0x44], eax
jmp 0x1001ec1f
cmp ecx, 0x23
jl 0x100208c2
push 0xffffffffffffffdd
pop ecx
sub ecx, edx
jmp 0x100206f0
movzx eax, word [edx + 4]
cmp eax, ecx
je 0x100208b9
mov edx, dword [edx]
test edx, edx
jne 0x100208a6
jmp 0x1001ec1f
mov word [edx + 6], bx
jmp 0x1001ec1f
cmp ecx, 0x16
je 0x10021397
cmp ecx, 0xf
je 0x10021397
cmp ecx, 0x10
je 0x10021397
cmp ecx, 5
je 0x100208e9
push 4
pop eax
cmp ecx, eax
jne 0x100208fa
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x40], 0
jne 0x100208fa
mov ebx, dword [esp + 0x1c]
mov dword [eax + 0x40], ebx
mov esi, dword [esp + 0x10]
lea eax, [ecx - 6]
xor ebp, ebp
cmp eax, 0x10
push 0xd
cmovbe ebp, esi
cmp edx, 0xfffffff2
pop eax
cmove ecx, eax
mov byte [esi], cl
inc esi
jmp 0x1001ec17
mov ebx, dword [esp + 0x14]
jmp 0x1001ebf5
mov al, byte [ebx + 1]
mov dword [esp + 0x38], ecx
cmp al, 0x3a
je 0x10020936
cmp al, 0x2e
je 0x10020936
cmp al, 0x3d
jne 0x10020952
lea eax, [esp + 0x94]
push eax
push ebx
call fcn.1001e3fa
mov ebx, dword [esp + 0x1c]
pop ecx
pop ecx
test eax, eax
jne 0x100213e4
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x1c]
inc ebx
mov dword [esp + 0x14], ebx
mov al, byte [ebx]
movzx esi, al
mov byte [esp + 0x67], al
mov dword [esp + 0x20], esi
cmp al, 0x5c
jne 0x100209a1
cmp byte [ebx + 1], 0x45
lea eax, [ebx + 1]
jne 0x1002097f
mov ebx, eax
jmp 0x1002095c
push 3
push 0x10086f34
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x100209f0
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
add ebx, 3
jmp 0x10020958
test ecx, ecx
jne 0x100209b1
cmp al, 0x5e
jne 0x100209b1
mov ecx, edx
mov dword [esp + 0x30], ecx
jmp 0x1002095c
cmp al, 0x5d
jne 0x100209f0
mov eax, dword [esp + 0x18]
test dword [eax + 0x50], 0x2000000
je 0x100209f0
mov esi, dword [esp + 0x10]
test ecx, ecx
mov edi, dword [esp + 0x44]
mov eax, 0x97
push 0xd
pop ecx
cmovne eax, ecx
mov byte [esi], al
inc esi
push 0xffffffffffffffff
cmp edi, 0xfffffffe
pop eax
cmove edi, eax
mov dword [esp + 0x44], edi
mov dword [esp + 0x70], edi
jmp 0x100211a2
xor eax, eax
xor edi, edi
push 0x20
mov dword [esp + 0x38], eax
xor ebp, ebp
lea eax, [esp + 0xc8]
mov dword [esp + 0x28], ebp
push edi
push eax
call sub.vcruntime140.dll_memset
mov ebx, dword [esp + 0x20]
add esp, 0xc
cmp byte [esp + 0x67], 0
je 0x1002113b
mov edx, dword [esp + 0x20]
mov eax, edx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x80], edi
mov ebp, edi
test ecx, ecx
je 0x10020a56
cmp eax, 0x5c
jne 0x10020e3a
cmp byte [ebx + 1], 0x45
jne 0x10020e3a
xor ecx, ecx
inc ebx
mov dword [esp + 0x3c], ecx
jmp 0x10021083
cmp eax, 0x5b
jne 0x10020bb3
mov al, byte [ebx + 1]
cmp al, 0x3a
je 0x10020a72
cmp al, 0x2e
je 0x10020a72
cmp al, 0x3d
jne 0x10020e3a
lea eax, [esp + 0x94]
push eax
push ebx
call fcn.1001e3fa
mov ebx, dword [esp + 0x1c]
pop ecx
pop ecx
test eax, eax
je 0x10020e3a
cmp byte [ebx + 1], 0x3a
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 8]
jne 0x100213b1
add ebx, 2
mov dword [esp + 0x14], ebx
mov al, byte [ebx]
mov byte [esp + 0x67], al
cmp al, 0x5e
jne 0x10020abd
mov eax, dword [esp + 0x1c]
inc ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x94]
sub eax, ebx
push eax
push ebx
call fcn.1001e3b0
pop ecx
pop ecx
test eax, eax
js 0x100213a2
mov ecx, dword [esp + 0x1c]
test byte [esp + 0x40], cl
je 0x10020ae9
xor ecx, ecx
cmp eax, 2
cmovle eax, ecx
imul esi, eax, 0xc
push 0x20
pop ebx
push ebx
mov eax, dword [esi + 0x100862e8]
add eax, edi
push eax
lea eax, [esp + 0xec]
push eax
call sub.vcruntime140.dll_memcpy
mov eax, dword [esi + 0x100862ec]
add esp, 0xc
mov esi, dword [esi + 0x100862f0]
test eax, eax
js 0x10020b44
xor ecx, ecx
lea edx, [eax + edi]
test esi, esi
js 0x10020b33
mov al, byte [edx + ecx]
or byte [esp + ecx + 0xe4], al
inc ecx
cmp ecx, ebx
jl 0x10020b22
jmp 0x10020b44
mov al, byte [edx + ecx]
not al
and byte [esp + ecx + 0xe4], al
inc ecx
cmp ecx, ebx
jl 0x10020b33
mov edx, dword [esp + 0x1c]
mov eax, esi
neg eax
test esi, esi
cmovns eax, esi
cmp eax, edx
jne 0x10020b5f
and byte [esp + 0xe5], 0xc3
jmp 0x10020b6c
cmp eax, 2
jne 0x10020b6c
and byte [esp + 0xef], 0x7f
xor ecx, ecx
cmp byte [esp + 0x67], 0x5e
jne 0x10020b8c
mov al, byte [esp + ecx + 0xe4]
not al
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, ebx
jl 0x10020b75
jmp 0x10020b9f
mov al, byte [esp + ecx + 0xe4]
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, ebx
jl 0x10020b8c
mov ebx, dword [esp + 0x94]
push 2
inc ebx
mov dword [esp + 0x38], edx
pop edi
jmp 0x1002107f
cmp eax, 0x5c
jne 0x10020e3a
push dword [esp + 0x1c]
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x18]
mov ebx, dword [esp + 0x44]
push ebx
push dword [esi + 0x38]
push dword [esp + 0x34]
push eax
call fcn.1001ddf4
mov ecx, dword [esp + 0x3c]
add esp, 0x14
mov edx, eax
mov dword [esp + 0x20], edx
cmp dword [ecx], 0
jne 0x100211cc
cmp edx, 0xfffffffb
jne 0x10020c05
push 8
pop edx
mov dword [esp + 0x20], edx
mov ebx, dword [esp + 0x14]
jmp 0x10020e56
cmp edx, 0xfffffff4
je 0x100213c5
cmp edx, 0xffffffe6
jne 0x10020c38
mov ebx, dword [esp + 0x14]
cmp byte [ebx + 1], 0x5c
jne 0x10020c2b
cmp byte [ebx + 2], 0x45
jne 0x10020c2b
add ebx, 2
jmp 0x1002107f
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3c], ecx
jmp 0x10021083
cmp edx, 0xffffffe7
je 0x10020cd6
test edx, edx
jns 0x10020bfc
inc dword [esp + 0x34]
add edi, 2
mov esi, dword [esi + 8]
neg edx
mov dword [esp + 0x68], edi
cmp edx, 0xb
jg 0x10020d6c
je 0x10020d51
sub edx, 6
je 0x10020d27
sub edx, 1
je 0x10020d12
sub edx, 1
je 0x10020cdf
sub edx, 1
je 0x10020cae
sub edx, 1
jne 0x10020d84
mov ebp, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 0x24], ebp
mov al, byte [esi + ecx + 0xa0]
not al
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jl 0x10020c93
jmp 0x10020d44
mov al, byte [esi]
or byte [esp + 0xc4], al
mov al, byte [esi + 1]
and al, 0xf7
or byte [esp + 0xc5], al
push 2
pop ecx
mov al, byte [esi + ecx]
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jl 0x10020cc6
mov ebx, dword [esp + 0x14]
jmp 0x1002107f
mov ebp, dword [esp + 0x1c]
lea eax, [esp + 0xc4]
xor edx, edx
mov dword [esp + 0x24], ebp
sub esi, eax
lea ecx, [esp + 0xc4]
add ecx, edx
mov al, byte [ecx + esi]
not al
or byte [ecx], al
inc edx
cmp edx, 0x20
jl 0x10020cf2
or byte [esp + 0xc5], 8
jmp 0x10020d44
xor ecx, ecx
mov al, byte [esi + ecx + 0x40]
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jl 0x10020d14
jmp 0x10020cd6
mov ebp, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 0x24], ebp
mov al, byte [esi + ecx + 0x40]
not al
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jl 0x10020d31
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
jmp 0x10021087
xor ecx, ecx
mov al, byte [esi + ecx + 0xa0]
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jl 0x10020d53
jmp 0x10020cd6
sub edx, 0x12
je 0x10020e04
sub edx, 1
je 0x10020de5
sub edx, 1
je 0x10020db2
sub edx, 1
je 0x10020d9d
test bl, 0x40
mov ebx, dword [esp + 0x14]
jne 0x100213bd
movzx edx, byte [ebx]
mov dword [esp + 0x20], edx
jmp 0x10020e3e
or byte [esp + 0xc5], 0x3c
or byte [esp + 0xd4], 0x20
jmp 0x10020cd6
xor ecx, ecx
mov eax, ecx
mov edx, 0xff
sub eax, 1
je 0x10020dca
sub eax, 0xf
jne 0x10020dcf
add edx, 0xffffffe0
jmp 0x10020dcf
mov edx, 0xc3
or byte [esp + ecx + 0xc4], dl
inc ecx
cmp ecx, 0x20
jl 0x10020db4
mov edi, dword [esp + 0x68]
jmp 0x10020cd6
mov eax, dword [esp + 0x1c]
or byte [esp + 0xc5], 2
or byte [esp + 0xc8], al
or byte [esp + 0xd8], al
jmp 0x10020cd6
xor edx, edx
mov eax, edx
mov ecx, 0xff
sub eax, 1
je 0x10020e23
sub eax, 3
je 0x10020e1c
sub eax, 0x10
jne 0x10020e28
mov ecx, 0xfe
jmp 0x10020e28
mov ecx, 0xfd
or byte [esp + edx + 0xc4], cl
inc edx
cmp edx, 0x20
jl 0x10020e06
jmp 0x10020cd6
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
jmp 0x10020e56
cmp byte [ebx + 2], 0x45
jne 0x10020e5c
and dword [esp + 0x3c], 0
add ebx, 2
mov dword [esp + 0x14], ebx
cmp byte [ebx + 1], 0x5c
je 0x10020e44
push 0xd
pop eax
mov edi, ebx
cmp edx, eax
je 0x10020e6a
cmp edx, 0xa
jne 0x10020e71
or dword [esi + 0x54], 0x800
mov esi, dword [esp + 0x3c]
test esi, esi
jne 0x10021005
cmp byte [ebx + 1], 0x2d
jne 0x10021005
lea ebx, [edi + 2]
mov dword [esp + 0x14], ebx
cmp byte [ebx], 0x5c
mov dword [esp + 0x50], ebx
jne 0x10020ee1
cmp byte [ebx + 1], 0x45
jne 0x10020ece
add ebx, 2
mov dword [esp + 0x14], ebx
cmp byte [ebx], 0x5c
je 0x10020e97
jmp 0x10020ece
cmp byte [ebx + 1], 0x51
jne 0x10020ee1
add ebx, 2
mov dword [esp + 0x14], ebx
mov dword [esp + 0x50], ebx
cmp byte [ebx], 0x5c
jne 0x10020ed9
cmp byte [ebx + 1], 0x45
jne 0x10020ed9
add ebx, 2
mov dword [esp + 0x14], ebx
cmp byte [ebx], 0x5c
mov dword [esp + 0x50], ebx
je 0x10020eab
jmp 0x10020ee1
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], esi
mov al, byte [ebx]
test al, al
je 0x10020fff
test esi, esi
jne 0x10020ef7
cmp al, 0x5d
je 0x10020fff
cmp dword [esp + 0x3c], 0
movzx esi, al
jne 0x10020f4e
cmp esi, 0x5c
jne 0x10020f4e
push dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
push dword [esp + 0x44]
push dword [eax + 0x38]
lea eax, [esp + 0x20]
push ecx
push eax
call fcn.1001ddf4
mov ecx, dword [esp + 0x3c]
add esp, 0x14
mov esi, eax
cmp dword [ecx], 0
jne 0x100211cc
mov edx, dword [esp + 0x20]
test esi, esi
jns 0x10020f46
cmp esi, 0xfffffffb
jne 0x10020fff
push 8
pop esi
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x50], ebx
cmp esi, edx
jl 0x100213d0
je 0x10021005
push 0xd
pop eax
cmp esi, eax
je 0x10020f68
cmp esi, 0xa
jne 0x10020f75
mov ebp, dword [esp + 0x18]
or dword [ebp + 0x54], 0x800
jmp 0x10020f79
mov ebp, dword [esp + 0x18]
cmp dword [esp + 0x5c], 0
mov ecx, dword [esp + 0x1c]
push 2
pop edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x34], ecx
jne 0x1002107f
cmp edx, esi
jg 0x1002107f
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x20]
and edi, ecx
mov edx, ebx
test edx, edx
jns 0x10020fae
add edx, 7
sar edx, 3
movzx ecx, byte [esp + edx + 0xc4]
mov eax, ebx
and eax, 7
bts ecx, eax
mov byte [esp + edx + 0xc4], cl
test edi, edi
je 0x10020fed
mov eax, dword [ebp + 4]
movzx edx, byte [eax + ebx]
mov ecx, edx
and edx, 7
shr ecx, 3
movzx eax, byte [esp + ecx + 0xc4]
bts eax, edx
mov byte [esp + ecx + 0xc4], al
inc ebx
cmp ebx, esi
jle 0x10020fa5
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x68]
jmp 0x1002107f
mov ebx, edi
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0x1c]
lea edi, [ebp + 1]
cmp ebp, 2
cmovge edi, dword [esp + 0x80]
cmp edi, ecx
jne 0x10021025
cmp byte [ebx + 1], 0x5d
je 0x100210b3
mov dword [esp + 0x34], ecx
mov edx, edx
test edx, edx
jns 0x10021032
add edx, 7
sar edx, 3
mov esi, dword [esp + 0x20]
mov eax, esi
movzx ecx, byte [esp + edx + 0xc4]
and eax, 7
bts ecx, eax
mov eax, dword [esp + 0x1c]
mov byte [esp + edx + 0xc4], cl
test byte [esp + 0x40], al
je 0x1002107f
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
movzx edx, byte [eax + esi]
mov ecx, edx
and edx, 7
shr ecx, 3
movzx eax, byte [esp + ecx + 0xc4]
bts eax, edx
mov byte [esp + ecx + 0xc4], al
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x24]
inc ebx
mov dword [esp + 0x14], ebx
movzx edx, byte [ebx]
mov dword [esp + 0x20], edx
mov eax, edx
test edx, edx
je 0x10021139
cmp edx, 0x5d
jne 0x10020a2a
test ecx, ecx
je 0x10021143
jmp 0x10020a2a
mov ebp, dword [esp + 0x58]
inc ebx
cmp dword [esp + 0x30], 0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x68], ebp
je 0x10021112
mov edi, dword [esp + 0x44]
lea esi, [ecx + 2]
cmp edi, 0xfffffffe
push 0xffffffffffffffff
pop eax
cmove edi, eax
mov eax, dword [esp + 0x1c]
test byte [esp + 0x40], al
mov dword [esp + 0x44], edi
setne al
mov dword [esp + 0x70], edi
add al, 0x1f
mov byte [ecx], al
mov byte [ecx + 1], dl
jmp 0x100211a2
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
jmp 0x1001f3c4
mov ecx, dword [esp + 0x10]
mov esi, edi
jmp 0x1001f3c8
mov esi, dword [esp + 0x18]
jmp 0x1001f3c8
movzx ebp, byte [eax]
or ebp, dword [esi + 0x58]
or ebp, dword [esp + 0x98]
mov dword [esp + 0x70], edi
mov dword [esp + 0x58], ebp
mov esi, dword [esp + 0x10]
jmp 0x1001e9fe
mov esi, eax
test esi, esi
je 0x100213d8
mov edx, dword [esp + 0x44]
cmp edx, 0xfffffffe
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x10]
push 0xffffffffffffffff
pop eax
cmove edx, eax
mov eax, dword [esp + 0x58]
cmp ecx, ebp
mov dword [esp + 0x68], eax
mov dword [esp + 0x44], edx
setne al
mov dword [esp + 0x70], edx
add al, 0x6a
mov byte [esi], al
inc esi
cmp dword [esp + 0x5c], 0
jne 0x1002119f
test ecx, ecx
je 0x1002118c
xor eax, eax
not byte [esp + eax + 0xc4]
inc eax
cmp eax, 0x20
jl 0x1002117f
push 0x20
lea eax, [esp + 0xc8]
push eax
push esi
call sub.vcruntime140.dll_memcpy
add esp, 0xc
add esi, 0x20
mov dword [esp + 0x10], esi
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x1001e9fe
mov eax, dword [esp + 0x28]
mov dword [eax], 0x4b
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 0x42
mov ebx, dword [esp + 0x14]
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 0x3b
jmp 0x100211cc
mov eax, dword [esp + 0x28]
mov dword [eax], 0x3c
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 0x12
jmp 0x10021403
mov eax, dword [esp + 0x28]
dec ebx
mov dword [eax], 0x1a
jmp 0x10021403
mov eax, dword [esp + 0x28]
inc ebx
mov dword [eax], 0x1c
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 0x26
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 0x27
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 0x31
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 0x2b
jmp 0x100211cc
mov eax, dword [esp + 0x28]
mov dword [eax], 0x41
jmp 0x10021403
mov eax, dword [esp + 0x28]
inc ebx
mov dword [eax], 0x18
jmp 0x10021403
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
mov dword [edx], eax
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0x58]
mov dword [edx], eax
mov eax, dword [esp + 0xc0]
mov dword [eax], ecx
mov eax, dword [esp + 0x5c]
mov dword [edi], ebx
test eax, eax
je 0x100212c9
mov edx, dword [eax]
mov ebp, 0x7fffffeb
mov esi, dword [esp + 0x9c]
sub ebp, edx
sub ecx, esi
cmp ebp, ecx
jl 0x1002131e
sub edx, esi
add edx, dword [esp + 0x10]
mov dword [eax], edx
mov eax, dword [esp + 0x1c]
jmp 0x1002140b
mov dword [esi], 9
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 0x3f
jmp 0x10021403
mov eax, dword [esp + 0x28]
dec ebx
mov dword [eax], 0xc
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 0x36
jmp 0x100211cc
mov eax, dword [esp + 0x28]
mov dword [eax], 0x1b
jmp 0x100211cc
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov dword [eax], 0x14
jmp 0x10021407
mov eax, dword [esp + 0x28]
mov dword [eax], 0xe
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 0x3a
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 0x1d
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 0x2a
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 0x3e
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 0x28
jmp 0x100211cc
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov dword [eax], 0xf
jmp 0x10021403
mov dword [esi], 0x2d
jmp 0x100211cc
mov eax, dword [esp + 0x28]
mov dword [eax], 0x1e
jmp 0x100211cc
mov eax, dword [esp + 0x28]
mov dword [eax], 0x1f
jmp 0x10021403
mov dword [ecx], 7
jmp 0x10021403
mov dword [ecx], 0x47
jmp 0x100211cc
mov dword [ecx], 8
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 6
jmp 0x10021403
cmp byte [ebx + 1], 0x3a
push 0x1f
pop eax
push 0xd
pop ecx
cmove eax, ecx
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
jmp 0x10021403
mov eax, dword [esp + 0x28]
mov dword [eax], 0x34
mov edi, dword [esp + 0x2c]
mov dword [edi], ebx
xor eax, eax
mov ecx, dword [esp + 0x104]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1003c212
add esp, 0xf8
ret