Function at 0x416ae0
Capabilities:
Encode data using base64

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x3c
mov edi, dword [ecx]
mov eax, dword [ecx + 4]
mov ebp, eax
sub ebp, edi
cmp ebp, 2
jae 0x416aff
xor eax, eax
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
movzx edx, word [edi]
cmp edx, 0x7367
setne al
xor esi, esi
cmp dx, 0x7367
je 0x416b20
xor ecx, ecx
jmp 0x416b36
add edi, 2
mov ecx, dword [esp + 0x14]
mov dword [ecx], edi
mov ebp, dword [esp + 0x18]
sub ebp, edi
mov cl, 1
cmp ebp, 2
jb case.0x416cf0.10
xor edx, edx
mov dl, al
mov dword [esp + 0x10], edx
mov dword [esp + 8], edi
movzx eax, byte [edi]
mov edi, 0x3d
jmp 0x416b57
inc edx
mov esi, edx
cmp edi, esi
je 0x416b84
lea edx, [esi + edi]
shr edx, 1
lea ebx, [edx*4]
cmp al, byte [ebx + ebx*2 + 0x43018c]
jg 0x416b50
jne 0x416b7e
mov ah, byte [ebx + ebx*2 + 0x43018d]
mov ebx, dword [esp + 8]
cmp byte [ebx + 1], ah
jg 0x416b50
mov edi, edx
cmp edi, esi
jne 0x416b57
mov dword [esp + 0x24], ecx
lea edx, [esi + esi*2]
cmp al, byte [edx*4 + 0x43018c]
mov edi, dword [esp + 8]
jne 0x416c2b
lea ecx, [edx*4 + 0x43018c]
movzx eax, byte [edi + 1]
cmp al, byte [ecx + 1]
jne 0x416c2b
lea ebx, [edi + 2]
mov esi, dword [esp + 0x14]
mov dword [esi], ebx
movzx ebp, byte [ecx + 2]
mov dword [esp + 0x10], ecx
mov edi, dword [ecx + 8]
push edi
call sub.msvcrt.dll_strlen
add esp, 4
mov dword [esp + 0x28], ebp
cmp ebp, 0xa
ja 0x416cdc
cmp eax, 8
jb 0x417b6a
mov ecx, 0x7265706f
xor ecx, dword [edi]
mov edx, 0x726f7461
xor edx, dword [edi + 4]
or edx, ecx
jne 0x417b6a
lea ebp, [edi + 8]
mov edx, eax
add edx, 0xfffffff8
je 0x416ddc
cmp byte [ebp], 0x20
mov ecx, dword [esp + 0x10]
jne case.default.0x416c24
add edi, 9
add eax, 0xfffffff7
mov ebp, edi
mov edx, eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ebp
mov eax, dword [esp + 0x28]
jmp dword [eax*4 + 0x4331b8]
movzx edx, byte [edi]
cmp edx, 0x66
mov esi, dword [esp + 0x14]
je 0x416c70
cmp edx, 0x54
je 0x416c62
cmp edx, 0x4c
jne 0x416c86
mov ecx, esi
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
jmp 0x4181a0
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ebp
mov eax, dword [esp + 0x28]
jmp dword [eax*4 + 0x4331b8]
mov ecx, esi
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.00415b30
movzx eax, byte [edi + 1]
cmp al, 0x70
jne 0x416cf7
mov ecx, esi
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
jmp 0x418c60
cmp word [edi], 0x6c69
je 0x416d1e
cmp word [edi], 0x636d
mov eax, dword [esp + 0x18]
je 0x416ea1
cmp word [edi], 0x786e
je 0x416f9c
cmp eax, edi
sete al
cmp dl, 0x72
setne cl
or cl, al
jne 0x416eb4
movzx eax, byte [edi + 1]
or eax, 0x20
cmp eax, 0x71
jne 0x416eb4
mov ecx, esi
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
jmp 0x4196b0
mov ebp, edi
mov edx, eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ebp
mov eax, dword [esp + 0x28]
jmp dword [eax*4 + 0x4331b8]
cmp ebp, 2
je 0x416d10
cmp al, 0x4c
jne 0x416d10
movsx eax, byte [edi + 2]
add eax, 0xffffffd0
cmp eax, 9
jbe 0x416c78
mov ecx, esi
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
jmp 0x418f50
add edi, 2
mov dword [esi], edi
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 2
mov dword [esp + 0x10], eax
lea eax, [esi + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
jmp 0x416d72
push eax
push ebx
call sub.msvcrt.dll_realloc
add esp, 8
mov dword [esi + 8], eax
test eax, eax
je 0x417b65
lea ebp, [eax + edi]
sar edi, 1
mov dword [esi + 0xc], ebp
lea eax, [eax + edi*4]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 8]
lea ecx, [ebp + 4]
mov dword [esi + 0xc], ecx
mov dword [ebp], eax
mov edi, dword [esi]
mov eax, dword [esi + 4]
cmp edi, eax
je 0x416d7f
cmp byte [edi], 0x45
je 0x416fd1
mov ecx, esi
call fcn.004191c0
test eax, eax
je case.0x416cf0.10
mov ebp, dword [esi + 0xc]
cmp ebp, dword [esi + 0x10]
jne 0x416d64
mov dword [esp + 8], eax
mov ebx, dword [esi + 8]
mov edi, ebp
sub edi, ebx
lea eax, [edi + edi]
cmp ebx, dword [esp + 0x24]
jne 0x416d3d
push eax
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x417b83
cmp ebp, dword [esp + 0x24]
je 0x416dd4
push edi
push ebx
push eax
mov esi, eax
call sub.msvcrt.dll_memmove
mov eax, esi
mov esi, dword [esp + 0x20]
add esp, 0xc
mov dword [esi + 8], eax
jmp 0x416d52
xor edx, edx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ebp
mov eax, dword [esp + 0x28]
jmp dword [eax*4 + 0x4331b8]
mov dword [esp + 8], edx
xor ebx, ebx
mov edi, dword [ecx + 4]
mov ecx, esi
call fcn.00416ae0
test eax, eax
je 0x41764b
mov ebx, dword [esi + 0x1198]
mov ecx, dword [ebx + 4]
lea edx, [ecx - 0xfd8]
cmp edx, 0xfffff007
ja 0x416e54
mov esi, eax
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x417ba1
mov dword [eax], ebx
mov dword [eax + 4], 0
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x1198], eax
xor ecx, ecx
mov ebx, eax
mov eax, esi
lea edx, [ecx + 0x20]
mov dword [ebx + 4], edx
mov byte [ebx + ecx + 0xc], 0x42
mov edx, dword [ebx + ecx + 0x10]
and edi, 0x3f
and edx, 0xffffffc0
or edx, edi
mov dword [ebx + ecx + 0x10], edx
movzx edx, byte [ebx + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [ebx + ecx + 0x14], dl
mov dword [ebx + ecx + 8], 0x430518
mov edx, dword [esp + 8]
mov dword [ebx + ecx + 0x1c], edx
mov dword [ebx + ecx + 0x18], ebp
mov dword [ebx + ecx + 0x20], eax
lea eax, [ebx + ecx]
add eax, 8
jmp 0x416af7
add edi, 2
mov dword [esi], edi
mov ecx, esi
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
jmp 0x4194c0
cmp word [edi], 0x6f73
je 0x417583
cmp word [edi], 0x7073
je 0x4176b9
cmp word [edi], 0x5a73
je 0x41776e
cmp word [edi], 0x5073
mov eax, dword [esp + 0x18]
je 0x4177b5
cmp word [edi], 0x6c74
je 0x4177ff
cmp word [edi], 0x7274
je 0x417886
cmp word [edi], 0x7774
je 0x41797d
cmp eax, edi
sete al
cmp dl, 0x75
setne cl
or cl, al
jne 0x4179a2
inc edi
mov dword [esi], edi
mov ecx, esi
call fcn.00415090
mov dword [esp + 0x30], eax
test eax, eax
je case.0x416cf0.10
mov ecx, dword [eax]
mov edi, dword [ecx + 0x18]
mov ecx, edi
mov ebx, eax
call dword [0x434848]
mov ecx, ebx
call edi
cmp edx, 8
jne 0x416f5d
mov ecx, 0x75755f5f
xor ecx, dword [eax]
mov edx, 0x666f6469
xor edx, dword [eax + 4]
or edx, ecx
je 0x417b09
lea ebx, [esi + 8]
mov edi, dword [esi + 0xc]
sub edi, dword [esi + 8]
mov ebp, esp
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x416f78
cmp byte [eax], 0x45
je 0x417acc
mov ecx, esi
call fcn.00413d00
mov dword [esp], eax
test eax, eax
je case.0x416cf0.10
mov ecx, ebx
mov edx, ebp
call fcn.00413fd0
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jne 0x416f6f
jmp 0x416f78
add edi, 2
mov dword [esi], edi
mov ecx, esi
call fcn.00416ae0
mov dword [esp], eax
test eax, eax
je case.0x416cf0.10
mov dword [esp + 0x30], 2
lea eax, [esp + 0x30]
mov edx, esp
mov ecx, esi
push eax
call fcn.00419600
add esp, 4
jmp 0x416af7
inc edi
mov dword [esi], edi
mov ecx, esi
mov edx, dword [esp + 0x10]
call fcn.004140f0
mov dword [esp + 4], edx
mov dword [esp], eax
mov edx, esp
mov ecx, esi
call fcn.00419430
jmp 0x416af7
mov ecx, esi
call fcn.00412220
mov dword [esp], eax
test eax, eax
je case.0x416cf0.10
mov ecx, esi
call fcn.00416ae0
mov dword [esp + 0x1c], eax
test eax, eax
je case.0x416cf0.10
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
mov ecx, esi
lea esi, [esp + 0x1c]
mov edi, esp
lea edx, [esp + 0x30]
push eax
push esi
push edi
call fcn.004180e0
jmp 0x41716b
mov ecx, esi
call fcn.00416ae0
mov dword [esp], eax
test eax, eax
je case.0x416cf0.10
mov ecx, esi
call fcn.00416ae0
mov dword [esp + 0x1c], eax
test eax, eax
je case.0x416cf0.10
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
mov ecx, esi
lea esi, [esp + 0x1c]
lea edi, [esp + 0x30]
mov edx, esp
push eax
push esi
push edi
call fcn.00417d30
jmp 0x41716b
mov dword [esp + 8], edx
xor ebx, ebx
test byte [ecx + 3], 1
je 0x417596
mov ecx, esi
call fcn.00412220
jmp 0x41759d
mov ecx, esi
call fcn.00416ae0
mov dword [esp], eax
test eax, eax
je case.0x416cf0.10
mov ecx, esi
call fcn.00416ae0
mov dword [esp + 0x1c], eax
test eax, eax
je case.0x416cf0.10
mov ecx, esi
call fcn.00416ae0
mov dword [esp + 0xc], eax
test eax, eax
je case.0x416cf0.10
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
mov ecx, esi
lea esi, [esp + 0xc]
lea edi, [esp + 0x1c]
mov edx, esp
push eax
push esi
push edi
call fcn.00418030
jmp 0x41716b
mov eax, dword [ecx + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 0x1c], eax
mov ecx, esi
call fcn.00416ae0
mov dword [esp + 0xc], eax
test eax, eax
je case.0x416cf0.10
mov ecx, esi
call fcn.00416ae0
mov dword [esp + 0x2c], eax
test eax, eax
je case.0x416cf0.10
lea eax, [esp + 0x1c]
mov ecx, esi
lea esi, [esp + 0x2c]
mov edi, esp
lea edx, [esp + 0xc]
push eax
push esi
push edi
call fcn.0041a790
add esp, 0xc
jmp 0x416af7
mov ecx, esi
call fcn.00416ae0
mov dword [esp], eax
test eax, eax
je case.0x416cf0.10
mov ecx, esi
call fcn.00416ae0
mov dword [esp + 0x1c], eax
test eax, eax
je case.0x416cf0.10
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
mov ecx, esi
lea esi, [esp + 0x1c]
mov edx, esp
push eax
push esi
call fcn.00417c80
jmp 0x417a43
mov ecx, esi
call fcn.00416ae0
mov dword [esp + 0x1c], eax
xor ebx, ebx
test eax, eax
je 0x41764b
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 2
mov dword [esp + 0x24], eax
lea eax, [esi + 0x14]
mov dword [esp + 0x18], eax
jmp 0x41721b
push eax
push ebp
call sub.msvcrt.dll_realloc
add esp, 8
mov dword [esi + 8], eax
test eax, eax
je 0x417b8d
lea ebx, [eax + edi]
sar edi, 1
mov dword [esi + 0xc], ebx
lea eax, [eax + edi*4]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 8]
lea ecx, [ebx + 4]
mov dword [esi + 0xc], ecx
mov dword [ebx], eax
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x41722b
cmp byte [eax], 0x45
je 0x417730
mov ecx, esi
call fcn.00416ae0
test eax, eax
je case.0x416cf0.10
mov ebx, dword [esi + 0xc]
cmp ebx, dword [esi + 0x10]
jne 0x417213
mov dword [esp + 8], eax
mov ebp, dword [esi + 8]
mov edi, ebx
sub edi, ebp
lea eax, [edi + edi]
cmp ebp, dword [esp + 0x18]
jne 0x4171ec
push eax
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x417b97
cmp ebx, dword [esp + 0x18]
je 0x417280
push edi
push ebp
push eax
mov esi, eax
call sub.msvcrt.dll_memmove
mov eax, esi
mov esi, dword [esp + 0x20]
add esp, 0xc
mov dword [esi + 8], eax
jmp 0x417201
cmp ebx, dword [esp + 0x18]
je 0x417548
cmp byte [ebx], 0x5f
jne 0x417548
mov eax, dword [esp + 8]
add eax, 3
mov dword [esi], eax
mov eax, dword [ecx + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 4], edx
mov dword [esp], ebp
mov dword [esp + 0x1c], eax
mov ecx, esi
call fcn.00416ae0
mov dword [esp + 0xc], eax
test eax, eax
je case.0x416cf0.10
lea eax, [esp + 0x1c]
mov ecx, esi
lea esi, [esp + 0xc]
mov edx, esp
push eax
push esi
call fcn.0041abb0
jmp 0x417a43
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 2
mov dword [esp + 0x38], eax
lea eax, [esi + 0x14]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
jmp 0x417331
push eax
push edi
call sub.msvcrt.dll_realloc
add esp, 8
mov dword [esi + 8], eax
test eax, eax
je 0x417b88
lea ebx, [eax + ebp]
sar ebp, 1
mov dword [esi + 0xc], ebx
lea eax, [eax + ebp*4]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 8]
lea ecx, [ebx + 4]
mov dword [esi + 0xc], ecx
mov dword [ebx], eax
mov ebx, dword [esi]
mov eax, dword [esi + 4]
cmp ebx, eax
je 0x41733e
cmp byte [ebx], 0x5f
je 0x417666
mov ecx, esi
call fcn.00416ae0
test eax, eax
je case.0x416cf0.10
mov ebx, dword [esi + 0xc]
cmp ebx, dword [esi + 0x10]
jne 0x417324
mov dword [esp + 8], eax
mov edi, dword [esi + 8]
mov ebp, ebx
sub ebp, edi
lea eax, [ebp*2]
cmp edi, dword [esp + 0x28]
jne 0x4172fd
push eax
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x417b92
cmp ebx, dword [esp + 0x28]
je 0x417397
push ebp
push edi
push eax
mov esi, eax
call sub.msvcrt.dll_memmove
mov eax, esi
mov esi, dword [esp + 0x20]
add esp, 0xc
mov dword [esi + 8], eax
jmp 0x417312
xor ebx, ebx
mov ecx, esi
call fcn.00416ae0
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x41764b
movzx ebx, byte [ecx + 3]
mov ebp, dword [ecx + 4]
mov edi, dword [esi + 0x1198]
mov ecx, dword [edi + 4]
lea edx, [ecx - 0xfd8]
cmp edx, 0xfffff007
ja 0x417402
mov esi, eax
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x417ba6
mov dword [eax], edi
mov dword [eax + 4], 0
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x1198], eax
xor ecx, ecx
mov edi, eax
mov eax, esi
lea edx, [ecx + 0x20]
mov dword [edi + 4], edx
mov byte [edi + ecx + 0xc], 0x41
mov edx, dword [edi + ecx + 0x10]
and ebp, 0x3f
and edx, 0xffffffc0
or edx, ebp
mov dword [edi + ecx + 0x10], edx
movzx edx, byte [edi + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [edi + ecx + 0x14], dl
mov dword [edi + ecx + 8], 0x430728
mov dword [edi + ecx + 0x18], eax
mov eax, dword [esp + 0x24]
mov byte [edi + ecx + 0x1c], al
and bl, 1
mov byte [edi + ecx + 0x1d], bl
jmp 0x417645
movzx ebx, byte [esi + 0x184]
mov byte [esi + 0x184], 0
mov ecx, esi
call fcn.00412220
mov dword [esp + 0x1c], eax
mov byte [esi + 0x184], bl
xor ebx, ebx
test eax, eax
je 0x41764b
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, ecx
je 0x417652
cmp byte [eax], 0x5f
jne 0x417652
inc eax
mov dword [esi], eax
lea edx, [esi + 0x14]
mov dword [esp + 0x18], edx
jmp 0x4174da
push eax
push edi
call sub.msvcrt.dll_realloc
add esp, 8
mov dword [esi + 8], eax
test eax, eax
je 0x41772b
lea ebx, [eax + ebp]
sar ebp, 1
mov dword [esi + 0xc], ebx
lea eax, [eax + ebp*4]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 8]
lea ecx, [ebx + 4]
mov dword [esi + 0xc], ecx
mov dword [ebx], eax
mov eax, dword [esi]
mov ecx, dword [esi + 4]
xor ebx, ebx
cmp eax, ecx
je 0x4174e7
cmp byte [eax], 0x45
je 0x417859
mov ecx, esi
call fcn.00416ae0
test eax, eax
je 0x41764b
mov ebx, dword [esi + 0xc]
cmp ebx, dword [esi + 0x10]
jne 0x4174cb
mov dword [esp + 8], eax
mov edi, dword [esi + 8]
mov ebp, ebx
sub ebp, edi
lea eax, [ebp*2]
cmp edi, dword [esp + 0x18]
jne 0x4174a4
push eax
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x417b9c
cmp ebx, dword [esp + 0x18]
je 0x41753c
push ebp
push edi
push eax
mov esi, eax
call sub.msvcrt.dll_memmove
mov eax, esi
add esp, 0xc
mov esi, dword [esp + 0x14]
mov dword [esi + 8], eax
jmp 0x4174b9
mov ecx, esi
call fcn.00416ae0
mov dword [esp], eax
test eax, eax
je case.0x416cf0.10
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
mov ecx, esi
lea esi, [esp + 0x30]
mov edx, esp
push eax
push esi
call fcn.00417bd0
jmp 0x417a43
add edi, 2
mov dword [esi], edi
mov ecx, esi
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
jmp 0x419b40
mov ecx, esi
call fcn.00416ae0
test eax, eax
mov ecx, dword [esp + 0x10]
je 0x41764b
mov ebx, dword [ecx + 4]
mov edi, dword [esi + 0x1198]
mov ecx, dword [edi + 4]
lea edx, [ecx - 0xfc8]
cmp edx, 0xfffff007
ja 0x4175f3
mov esi, eax
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x417bab
mov dword [eax], edi
mov dword [eax + 4], 0
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x1198], eax
xor ecx, ecx
mov edi, eax
mov eax, esi
lea edx, [ecx + 0x30]
mov dword [edi + 4], edx
mov byte [edi + ecx + 0xc], 0x3c
mov edx, dword [edi + ecx + 0x10]
and ebx, 0x3f
and edx, 0xffffffc0
or edx, ebx
mov dword [edi + ecx + 0x10], edx
movzx edx, byte [edi + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [edi + ecx + 0x14], dl
mov dword [edi + ecx + 8], 0x430940
mov edx, dword [esp + 8]
mov dword [edi + ecx + 0x1c], edx
mov dword [edi + ecx + 0x18], ebp
mov dword [edi + ecx + 0x20], eax
mov dword [edi + ecx + 0x24], 0
mov dword [edi + ecx + 0x28], 0
lea ebx, [edi + ecx]
add ebx, 8
mov eax, ebx
jmp 0x416af7
cmp eax, ecx
je 0x4176de
cmp byte [eax], 0x45
jne 0x4176de
xor ebx, ebx
jmp 0x41785b
inc ebx
mov dword [esi], ebx
mov ecx, esi
mov edx, dword [esp + 0x38]
call fcn.004140f0
mov dword [esp + 4], edx
mov dword [esp], eax
mov ecx, esi
call fcn.00412220
mov dword [esp + 0xc], eax
xor ebx, ebx
test eax, eax
je 0x41764b
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, ecx
sub edx, eax
cmp edx, 2
jb 0x4176a5
cmp word [eax], 0x6970
je 0x4178cb
cmp eax, ecx
je 0x41764b
cmp byte [eax], 0x45
jne 0x41764b
mov edx, dword [esi + 0xc]
sub edx, dword [esi + 8]
jmp 0x417a76
add edi, 2
mov dword [esi], edi
mov ecx, esi
call fcn.00416ae0
mov dword [esp], eax
test eax, eax
je case.0x416cf0.10
mov edx, esp
mov ecx, esi
call fcn.00419e60
jmp 0x416af7
mov ecx, esi
call fcn.00416ae0
test eax, eax
je 0x41764b
mov ebp, dword [esi + 0xc]
cmp ebp, dword [esi + 0x10]
jne 0x4179fb
mov dword [esp + 8], eax
lea ecx, [esi + 0x14]
mov ebx, dword [esi + 8]
mov edi, ebp
sub edi, ebx
lea eax, [edi + edi]
cmp ebx, ecx
je 0x4179ba
push eax
push ebx
call sub.msvcrt.dll_realloc
add esp, 8
mov dword [esi + 8], eax
test eax, eax
mov ecx, dword [esp + 8]
jne 0x4179eb
call sub.msvcrt.dll_abort
inc eax
mov dword [esi], eax
mov ecx, esi
mov edx, dword [esp + 0x24]
call fcn.004140f0
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
mov ecx, esi
mov esi, esp
lea edx, [esp + 0x1c]
push eax
push esi
call fcn.00417ed0
jmp 0x417a43
add edi, 2
mov dword [esi], edi
cmp dword [esp + 0x18], edi
je 0x41779e
cmp byte [edi], 0x54
jne 0x41779e
mov ecx, esi
call fcn.00415b30
mov dword [esp], eax
test eax, eax
je case.0x416cf0.10
mov edx, esp
mov ecx, esi
call fcn.00419ee0
jmp 0x416af7
mov ecx, esi
call 0x418c60
mov dword [esp], eax
test eax, eax
je case.0x416cf0.10
jmp 0x4178bd
add edi, 2
mov dword [esi], edi
mov ecx, eax
mov eax, edi
lea edi, [esi + 8]
mov ebx, dword [esi + 0xc]
sub ebx, dword [esi + 8]
sar ebx, 2
mov ebp, esp
cmp eax, ecx
je 0x4177d9
cmp byte [eax], 0x45
je 0x41789e
mov ecx, esi
call fcn.00413d00
mov dword [esp], eax
test eax, eax
je case.0x416cf0.10
mov ecx, edi
mov edx, ebp
call fcn.00413fd0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, ecx
jne 0x4177d0
jmp 0x4177d9
add edi, 2
mov dword [esi], edi
mov ecx, esi
call fcn.00412220
mov dword [esp + 0x30], eax
test eax, eax
je case.0x416cf0.10
lea ebp, [esi + 8]
mov edi, dword [esi + 0xc]
sub edi, dword [esi + 8]
sar edi, 2
mov ebx, esp
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x417835
cmp byte [eax], 0x45
je 0x417a4b
mov ecx, esi
call fcn.004191c0
mov dword [esp], eax
test eax, eax
je case.0x416cf0.10
mov ecx, ebp
mov edx, ebx
call fcn.00413fd0
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jne 0x41782c
jmp 0x417835
mov bl, 1
inc eax
mov dword [esi], eax
mov ecx, esi
mov edx, dword [esp + 0x24]
call fcn.004140f0
mov dword [esp + 4], edx
mov dword [esp], eax
test bl, bl
jne 0x417a1f
cmp edx, 1
jne case.0x416cf0.10
jmp 0x417a1f
add edi, 2
mov dword [esi], edi
mov ecx, esi
mov edx, 0x42ff0f
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
jmp 0x41a120
inc eax
mov dword [esi], eax
mov ecx, esi
mov edx, ebx
call fcn.004140f0
mov dword [esp + 4], edx
mov dword [esp], eax
mov edx, esp
mov ecx, esi
call fcn.0041a000
mov dword [esp], eax
mov edx, esp
mov ecx, esi
call fcn.00419f60
jmp 0x416af7
add eax, 2
mov dword [esi], eax
mov edx, dword [esi + 0xc]
sub edx, dword [esi + 8]
mov dword [esp + 0x18], edx
jmp 0x417913
push eax
push edi
call sub.msvcrt.dll_realloc
add esp, 8
mov dword [esi + 8], eax
test eax, eax
je 0x417bb0
lea ebp, [eax + ebx]
sar ebx, 1
mov dword [esi + 0xc], ebp
lea eax, [eax + ebx*4]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 8]
xor ebx, ebx
lea ecx, [ebp + 4]
mov dword [esi + 0xc], ecx
mov dword [ebp], eax
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, ecx
je 0x417920
cmp byte [eax], 0x45
je 0x417a72
mov ecx, esi
call fcn.00416ae0
test eax, eax
je 0x41764b
mov ebp, dword [esi + 0xc]
cmp ebp, dword [esi + 0x10]
jne 0x417905
mov dword [esp + 8], eax
mov edi, dword [esi + 8]
mov ebx, ebp
sub ebx, edi
lea eax, [ebx + ebx]
cmp edi, dword [esp + 0x28]
jne 0x4178dc
push eax
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x417bb5
cmp ebp, dword [esp + 0x28]
je 0x417975
push ebx
push edi
push eax
mov esi, eax
call sub.msvcrt.dll_memmove
mov eax, esi
mov esi, dword [esp + 0x20]
add esp, 0xc
mov dword [esi + 8], eax
jmp 0x4178f1
add edi, 2
mov dword [esi], edi
mov ecx, esi
call fcn.00416ae0
mov dword [esp], eax
test eax, eax
je case.0x416cf0.10
mov edx, esp
mov ecx, esi
call fcn.0041a1b0
jmp 0x416af7
xor edx, edx
cmp dword [esp + 0x10], 0
sete dl
mov ecx, esi
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
jmp 0x41a230
mov esi, ecx
push eax
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x417b9c
cmp ebp, esi
je 0x4179e0
push edi
push ebx
push eax
mov esi, eax
call sub.msvcrt.dll_memmove
mov eax, esi
add esp, 0xc
mov esi, dword [esp + 0x14]
mov dword [esi + 8], eax
mov ecx, dword [esp + 8]
lea ebp, [eax + edi]
sar edi, 1
mov dword [esi + 0xc], ebp
lea eax, [eax + edi*4]
mov dword [esi + 0x10], eax
mov eax, ecx
lea ecx, [ebp + 4]
mov dword [esi + 0xc], ecx
mov dword [ebp], eax
mov ecx, esi
mov edx, dword [esp + 0x24]
call fcn.004140f0
mov dword [esp + 4], edx
mov dword [esp], eax
cmp edx, 1
jne case.0x416cf0.10
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
mov ecx, esi
mov esi, esp
lea edx, [esp + 0x1c]
push eax
push esi
call fcn.00417f80
add esp, 8
jmp 0x416af7
inc eax
mov dword [esi], eax
mov ecx, esi
mov edx, edi
call fcn.004140f0
mov dword [esp + 4], edx
mov dword [esp], eax
lea edx, [esp + 0x30]
mov ecx, esi
push ebx
call fcn.0041a090
add esp, 4
jmp 0x416af7
mov edx, dword [esp + 0x18]
sar edx, 2
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004140f0
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + 3]
and al, 1
mov ecx, dword [ecx + 4]
shl ecx, 0x19
sar ecx, 0x19
mov dword [esp + 0x2c], ecx
mov ecx, esi
lea esi, [esp + 0x2c]
movzx eax, al
movzx edi, byte [esp + 0x24]
lea ebx, [esp + 0x1c]
lea ebp, [esp + 0xc]
mov edx, esp
push esi
push eax
push edi
push ebx
push ebp
call fcn.00417df0
add esp, 0x14
jmp 0x416af7
inc eax
mov dword [esi], eax
sar edi, 2
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov edx, edi
call fcn.004140f0
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0xc], 1
lea eax, [esp + 0xc]
mov esi, esp
lea edx, [esp + 0x30]
mov ecx, ebx
push eax
push esi
call fcn.00417ed0
add esp, 8
jmp 0x416af7
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x416f5d
cmp byte [eax], 0x74
jne 0x417b27
inc eax
mov ecx, dword [esp + 0x14]
mov dword [ecx], eax
call fcn.00412220
jmp 0x417b3e
cmp byte [eax], 0x7a
mov esi, dword [esp + 0x14]
jne 0x416f5d
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00416ae0
mov dword [esp + 0x1c], eax
test eax, eax
je case.0x416cf0.10
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0xc]
lea ecx, [eax + 8]
sub edi, dword [eax + 8]
lea edx, [esp + 0x1c]
call fcn.00413fd0
jmp 0x417acf
call sub.msvcrt.dll_abort
push str.operator_name_does_not_start_with_operator
push 0xb49
push str._home_runner_work_llvm_mingw_llvm_mingw_llvm_project_libcxxabi_src_demangle_ItaniumDemangle.h
push str._s:_d:__s
call fcn.00408350
call sub.msvcrt.dll_abort
call sub.msvcrt.dll_abort
call sub.msvcrt.dll_abort
call sub.msvcrt.dll_abort
call sub.msvcrt.dll_abort
call sub.msvcrt.dll_abort
call fcn.004027c0
call fcn.004027c0
call fcn.004027c0
call sub.msvcrt.dll_abort
call sub.msvcrt.dll_abort
mov byte [esi + 0x184], bl
push eax
call fcn.00408ff0
int3
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov edx, dword [ecx]
mov esi, dword [ecx + 4]
xor eax, eax
cmp edx, esi
je case.0x4181d5.84
cmp byte [edx], 0x4c
jne case.0x4181d5.84
lea edi, [edx + 1]
mov dword [ecx], edi
mov ebx, esi
sub ebx, edi
je case.0x4181d5.66
movzx ebp, byte [edi]
add ebp, 0xffffffbf
cmp ebp, 0x38
ja case.0x4181d5.66
jmp dword [ebp*4 + 0x4331ec]
mov esi, ecx
call fcn.00412220
mov ecx, eax
mov dword [esp], eax
xor eax, eax
test ecx, ecx
je case.0x4181d5.84
mov edx, dword [esi]
cmp edx, dword [esi + 4]
je case.0x4181d5.84
cmp byte [edx], 0x45
jne case.0x4181d5.84
mov ecx, esi
inc edx
mov dword [esi], edx
mov edx, esp
call fcn.0041bea0
jmp case.0x4181d5.84
mov esi, ecx
call fcn.00412220
mov dword [esp + 8], eax
test eax, eax
je 0x418bfd
mov ecx, esi
mov edi, dword [esi]
mov esi, dword [esi + 4]
mov edx, edi
cmp edi, esi
je 0x418243
cmp byte [edi], 0x6e
mov edx, edi
jne 0x418243
lea edx, [edi + 1]
mov dword [ecx], edx
xor eax, eax
cmp esi, edx
je case.0x4181d5.84
movsx ebx, byte [edx]
add ebx, 0xffffffd0
cmp ebx, 9
ja case.0x4181d5.84
nop dword [eax]
movsx ebx, byte [edx]
add ebx, 0xffffffd0
cmp ebx, 9
ja 0x418276
inc edx
mov dword [ecx], edx
cmp edx, esi
jne 0x418260
mov ebx, esi
jmp 0x418278
mov ebx, edx
mov dword [esp], edi
sub ebx, edi
mov dword [esp + 4], ebx
sete bl
cmp edx, esi
sete bh
or bh, bl
jne case.0x4181d5.84
cmp byte [edx], 0x45
jne case.0x4181d5.84
inc edx
mov dword [ecx], edx
mov eax, esp
lea edx, [esp + 8]
push eax
call fcn.0041c6d0
add esp, 4
jmp case.0x4181d5.84
add edx, 2
mov dword [ecx], edx
mov edx, str.short
push 5
jmp 0x418c2f
add edx, 2
mov dword [ecx], edx
mov edx, 0x4309ef
push 2
jmp 0x418c2f
add edx, 2
mov dword [ecx], edx
mov edx, 0x4309e8
jmp 0x418638
lea edi, [edx + 2]
mov dword [ecx], edi
mov ebx, esi
sub ebx, edi
cmp ebx, 9
jb case.0x4181d5.84
movzx ebx, byte [edx + 2]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
movzx ebx, byte [edx + 3]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
movzx ebx, byte [edx + 4]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
movzx ebx, byte [edx + 5]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
movzx ebx, byte [edx + 6]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
movzx ebx, byte [edx + 7]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
mov ebx, ecx
movzx eax, byte [edx + 8]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 9]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
lea eax, [edx + 0xa]
mov dword [ebx], eax
cmp eax, esi
je 0x418bfd
cmp byte [eax], 0x45
mov eax, 0
jne case.0x4181d5.84
add edx, 0xb
mov dword [ebx], edx
mov esi, dword [ebx + 0x1198]
mov ecx, dword [esi + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x418450
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x418c4e
mov dword [eax], esi
mov dword [eax + 4], 0
mov dword [ebx + 0x1198], eax
xor ecx, ecx
mov esi, eax
lea eax, [ecx + 0x20]
mov dword [esi + 4], eax
mov byte [esi + ecx + 0xc], 0x4e
and byte [esi + ecx + 0x10], 0xc0
lea eax, [esi + ecx]
add eax, 8
movzx edx, byte [esi + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [esi + ecx + 0x14], dl
mov dword [esi + ecx + 8], 0x430af4
mov dword [esi + ecx + 0x18], edi
mov dword [esi + ecx + 0x1c], 8
jmp case.0x4181d5.84
cmp ebx, 2
jb case.0x4181d5.84
cmp word [edi], 0x6e44
jne case.0x4181d5.84
lea edi, [edx + 3]
mov dword [ecx], edi
cmp edi, esi
je 0x4184b7
cmp byte [edi], 0x30
jne 0x4184b7
add edx, 4
mov dword [ecx], edx
mov edi, edx
cmp edi, esi
je case.0x4181d5.84
cmp byte [edi], 0x45
jne case.0x4181d5.84
inc edi
mov dword [ecx], edi
mov edx, str.nullptr
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
jmp 0x41bf20
cmp ebx, 2
jb case.0x4181d5.84
cmp word [edi], 0x5a5f
jne case.0x4181d5.84
add edx, 3
mov dword [ecx], edx
mov esi, ecx
call fcn.00411720
test eax, eax
je 0x418bfd
mov ecx, eax
mov edx, esi
mov esi, dword [esi]
cmp esi, dword [edx + 4]
mov eax, 0
je case.0x4181d5.84
cmp byte [esi], 0x45
jne case.0x4181d5.84
inc esi
mov dword [edx], esi
mov eax, ecx
jmp case.0x4181d5.84
add edx, 2
mov dword [ecx], edx
mov edx, 0x4309f2
push 3
jmp 0x418c2f
add edx, 2
mov dword [ecx], edx
mov edx, 0x42f0f0
push 0
jmp 0x418c2f
add edx, 2
mov dword [ecx], edx
mov edx, str.unsigned_short
push 0xe
jmp 0x418c2f
add edx, 2
mov dword [ecx], edx
mov edx, str.signed_char
push 0xb
jmp 0x418c2f
add edx, 2
mov dword [ecx], edx
mov edx, str.unsigned_char
push 0xd
jmp 0x418c2f
cmp ebx, 2
jb case.0x4181d5.84
cmp byte [edx + 2], 0x6c
jne case.0x4181d5.84
mov esi, ecx
xor edx, edx
call fcn.0041bfb0
mov dword [esp], eax
test eax, eax
je 0x418bfd
mov edx, dword [esi]
cmp edx, dword [esi + 4]
je 0x418bfd
cmp byte [edx], 0x45
mov eax, 0
jne case.0x4181d5.84
mov ecx, esi
inc edx
mov dword [esi], edx
mov edx, esp
call fcn.0041c650
jmp case.0x4181d5.84
cmp ebx, 3
jb case.0x4181d5.84
movzx esi, word [edi]
xor esi, 0x3062
movzx ebx, byte [edi + 2]
xor ebx, 0x45
or bx, si
je 0x418c39
movzx esi, word [edi]
xor esi, 0x3162
movzx edi, byte [edi + 2]
xor edi, 0x45
or di, si
jne case.0x4181d5.84
add edx, 4
mov dword [ecx], edx
mov dword [esp], 1
jmp 0x418c45
add edx, 2
mov dword [ecx], edx
mov edx, str.char
push 4
jmp 0x418c2f
add edx, 2
mov dword [ecx], edx
mov edx, 0x4309ea
push 1
jmp 0x418c2f
add edx, 2
mov dword [ecx], edx
mov edx, 0x4309ec
push 2
jmp 0x418c2f
lea edi, [edx + 2]
mov dword [ecx], edi
mov ebx, esi
sub ebx, edi
cmp ebx, 0x15
jb case.0x4181d5.84
movzx ebx, byte [edx + 2]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
movzx ebx, byte [edx + 3]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
movzx ebx, byte [edx + 4]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
movzx ebx, byte [edx + 5]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
movzx ebx, byte [edx + 6]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
movzx ebx, byte [edx + 7]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
mov ebx, ecx
movzx eax, byte [edx + 8]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 9]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0xa]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0xb]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0xc]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0xd]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0xe]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0xf]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0x10]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0x11]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0x12]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0x13]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0x14]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0x15]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
lea eax, [edx + 0x16]
mov dword [ebx], eax
cmp eax, esi
je 0x418bfd
cmp byte [eax], 0x45
mov eax, 0
jne case.0x4181d5.84
add edx, 0x17
mov dword [ebx], edx
mov esi, dword [ebx + 0x1198]
mov ecx, dword [esi + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x418926
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x418c4e
mov dword [eax], esi
mov dword [eax + 4], 0
mov dword [ebx + 0x1198], eax
xor ecx, ecx
mov esi, eax
lea eax, [ecx + 0x20]
mov dword [esi + 4], eax
mov byte [esi + ecx + 0xc], 0x50
and byte [esi + ecx + 0x10], 0xc0
lea eax, [esi + ecx]
add eax, 8
movzx edx, byte [esi + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [esi + ecx + 0x14], dl
mov dword [esi + ecx + 8], 0x430bd4
mov dword [esi + ecx + 0x18], edi
mov dword [esi + ecx + 0x1c], 0x14
jmp case.0x4181d5.84
lea edi, [edx + 2]
mov dword [ecx], edi
mov ebx, esi
sub ebx, edi
cmp ebx, 0x11
jb case.0x4181d5.84
movzx ebx, byte [edx + 2]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
movzx ebx, byte [edx + 3]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
movzx ebx, byte [edx + 4]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
movzx ebx, byte [edx + 5]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
movzx ebx, byte [edx + 6]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
movzx ebx, byte [edx + 7]
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
setae bh
add bl, 0x9f
cmp bl, 6
setae bl
test bh, bl
jne case.0x4181d5.84
mov ebx, ecx
movzx eax, byte [edx + 8]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 9]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0xa]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0xb]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0xc]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0xd]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0xe]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0xf]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0x10]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
movzx eax, byte [edx + 0x11]
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
setae cl
add al, 0x9f
cmp al, 6
setae al
test cl, al
jne 0x418bfd
lea eax, [edx + 0x12]
mov dword [ebx], eax
cmp eax, esi
je 0x418bfd
cmp byte [eax], 0x45
mov eax, 0
jne case.0x4181d5.84
add edx, 0x13
mov dword [ebx], edx
mov esi, dword [ebx + 0x1198]
mov ecx, dword [esi + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x418bc2
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x418c4e
mov dword [eax], esi
mov dword [eax + 4], 0
mov dword [ebx + 0x1198], eax
xor ecx, ecx
mov esi, eax
lea eax, [ecx + 0x20]
mov dword [esi + 4], eax
mov byte [esi + ecx + 0xc], 0x4f
and byte [esi + ecx + 0x10], 0xc0
lea eax, [esi + ecx]
add eax, 8
movzx edx, byte [esi + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [esi + ecx + 0x14], dl
mov dword [esi + ecx + 8], 0x430b64
mov dword [esi + ecx + 0x18], edi
mov dword [esi + ecx + 0x1c], 0x10
jmp case.0x4181d5.84
xor eax, eax
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
add edx, 2
mov dword [ecx], edx
mov edx, str.unsigned___int128
push 0x11
jmp 0x418c2f
add edx, 2
mov dword [ecx], edx
mov edx, str.__int128
push 8
jmp 0x418c2f
add edx, 2
mov dword [ecx], edx
mov edx, str.wchar_t
push 7
call fcn.0041bd10
add esp, 0x10
jmp 0x418c02
add edx, 4
mov dword [ecx], edx
mov dword [esp], 0
mov edx, esp
call fcn.0041be20
jmp case.0x4181d5.84
call fcn.004027c0
int3
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
mov esi, edx
sub esi, edi
cmp esi, 3
jae 0x418c81
xor eax, eax
cmp esi, 2
je 0x418c99
jmp 0x418f37
movzx eax, word [edi]
xor eax, 0x7066
movzx esi, byte [edi + 2]
xor esi, 0x54
or si, ax
je 0x418d69
cmp word [edi], 0x7066
je 0x418ced
xor eax, eax
cmp word [edi], 0x4c66
jne 0x418f37
add edi, 2
mov dword [ecx], edi
cmp edx, edi
je 0x418f37
movsx esi, byte [edi]
add esi, 0xffffffd0
cmp esi, 9
ja 0x418f37
mov ebx, edi
nop dword [eax + eax]
movsx esi, byte [ebx]
add esi, 0xffffffd0
cmp esi, 9
ja 0x418e82
inc ebx
mov dword [ecx], ebx
cmp ebx, edx
jne 0x418cd0
mov esi, edx
jmp 0x418e84
lea esi, [edi + 2]
mov dword [ecx], esi
cmp esi, edx
je 0x418d02
cmp byte [esi], 0x72
jne 0x418d02
add edi, 3
mov dword [ecx], edi
mov esi, edi
cmp esi, edx
je 0x418d0e
cmp byte [esi], 0x56
jne 0x418d0e
inc esi
mov dword [ecx], esi
cmp esi, edx
je 0x418d1a
cmp byte [esi], 0x4b
jne 0x418d1a
inc esi
mov dword [ecx], esi
xor eax, eax
cmp edx, esi
je 0x418df0
movsx edi, byte [esi]
add edi, 0xffffffd0
cmp edi, 9
ja 0x418df0
mov edi, esi
mov ebp, esi
nop word [eax + eax]
movsx ebx, byte [ebp]
add ebx, 0xffffffd0
cmp ebx, 9
ja 0x418d56
inc ebp
mov dword [ecx], ebp
inc edi
cmp ebp, edx
jne 0x418d40
mov edi, edx
mov ebx, esi
sub edi, esi
mov esi, ebp
cmp esi, edx
jne 0x418dfc
jmp 0x418f37
add edi, 3
mov dword [ecx], edi
mov esi, dword [ecx + 0x1198]
mov edx, dword [esi + 4]
lea eax, [edx - 0xfd8]
cmp eax, 0xfffff007
ja 0x418dae
mov edi, ecx
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x418f3f
mov dword [eax], esi
mov dword [eax + 4], 0
mov dword [edi + 0x1198], eax
xor edx, edx
mov esi, eax
lea eax, [edx + 0x20]
mov dword [esi + 4], eax
mov byte [esi + edx + 0xc], 8
and byte [esi + edx + 0x10], 0xc0
lea eax, [esi + edx]
add eax, 8
movzx ecx, byte [esi + edx + 0x14]
and cl, 0xc0
or cl, 0x15
mov byte [esi + edx + 0x14], cl
mov dword [esi + edx + 8], 0x42fd78
mov dword [esi + edx + 0x18], 0x4311d8
mov dword [esi + edx + 0x1c], 4
jmp 0x418f37
xor edi, edi
xor ebx, ebx
cmp esi, edx
je 0x418f37
cmp byte [esi], 0x5f
jne 0x418f37
inc esi
mov dword [ecx], esi
mov esi, dword [ecx + 0x1198]
mov edx, dword [esi + 4]
lea eax, [edx - 0xfd8]
cmp eax, 0xfffff007
ja 0x418e48
mov ebp, ecx
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x418f3f
mov dword [eax], esi
mov dword [eax + 4], 0
mov dword [ebp + 0x1198], eax
xor edx, edx
mov esi, eax
lea eax, [edx + 0x20]
mov dword [esi + 4], eax
mov byte [esi + edx + 0xc], 0x43
and byte [esi + edx + 0x10], 0xc0
lea eax, [esi + edx]
add eax, 8
movzx ecx, byte [esi + edx + 0x14]
and cl, 0xc0
or cl, 0x15
mov byte [esi + edx + 0x14], cl
mov dword [esi + edx + 8], 0x4311ec
mov dword [esi + edx + 0x1c], edi
mov dword [esi + edx + 0x18], ebx
jmp 0x418f37
mov esi, ebx
cmp esi, edi
sete byte [esp + 3]
mov ebp, edx
cmp ebx, edx
sete dl
or dl, byte [esp + 3]
jne 0x418f37
cmp byte [ebx], 0x70
jne 0x418f37
mov edx, ebp
lea esi, [ebx + 1]
mov dword [ecx], esi
cmp esi, ebp
je 0x418ebc
cmp byte [esi], 0x72
jne 0x418ebc
add ebx, 2
mov dword [ecx], ebx
mov esi, ebx
cmp esi, edx
je 0x418ec8
cmp byte [esi], 0x56
jne 0x418ec8
inc esi
mov dword [ecx], esi
cmp esi, edx
je 0x418ed4
cmp byte [esi], 0x4b
jne 0x418ed4
inc esi
mov dword [ecx], esi
xor eax, eax
cmp edx, esi
je 0x418f02
movsx edx, byte [esi]
add edx, 0xffffffd0
cmp edx, 9
ja 0x418f08
mov edi, esi
mov ebx, esi
movsx edx, byte [ebx]
add edx, 0xffffffd0
cmp edx, 9
ja 0x418f10
inc ebx
mov dword [ecx], ebx
inc edi
cmp ebx, ebp
jne 0x418ee9
mov edx, ebp
mov edi, ebp
jmp 0x418f12
xor edi, edi
xor ebx, ebx
jmp 0x418f1a
xor edi, edi
xor ebx, ebx
mov edx, ebp
jmp 0x418f1a
mov edx, ebp
mov ebp, esi
sub edi, esi
mov esi, ebx
mov ebx, ebp
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
cmp esi, edx
je 0x418f37
cmp byte [esi], 0x5f
jne 0x418f37
inc esi
mov dword [ecx], esi
lea edx, [esp + 4]
call fcn.0041ec40
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.004027c0
int3
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov edx, dword [ecx]
mov esi, dword [ecx + 4]
xor eax, eax
cmp edx, esi
je case.0x418f96.77
cmp byte [edx], 0x66
jne case.0x418f96.77
lea edi, [edx + 1]
mov dword [ecx], edi
cmp esi, edi
je case.0x418f96.77
movzx edi, byte [edi]
xor eax, eax
add edi, 0xffffffb4
cmp edi, 0x26
ja case.0x418f96.77
xor ebx, ebx
mov dword [esp], 0
jmp dword [edi*4 + 0x4332d0]
mov bl, 1
mov dword [esp], ebx
mov bl, 1
jmp case.0x418f96.114
mov bl, 1
mov dword [esp], ebx
xor ebx, ebx
jmp case.0x418f96.114
mov bl, 1
mov dword [esp], 0
lea edi, [edx + 2]
mov dword [ecx], edi
sub esi, edi
cmp esi, 2
jb case.0x418f96.77
mov dword [esp + 4], ebx
movzx ebx, byte [edx + 2]
xor eax, eax
mov esi, 0x3d
jmp 0x418fe7
inc edi
mov eax, edi
cmp esi, eax
je 0x419010
lea edi, [eax + esi]
shr edi, 1
lea ebp, [edi*4]
cmp bl, byte [ebp + ebp*2 + 0x43018c]
jg 0x418fe0
jne 0x41900a
mov bh, byte [ebp + ebp*2 + 0x43018d]
cmp byte [edx + 3], bh
jg 0x418fe0
mov esi, edi
cmp esi, eax
jne 0x418fe7
lea esi, [eax + eax*2]
xor eax, eax
cmp bl, byte [esi*4 + 0x43018c]
jne case.0x418f96.77
lea edi, [esi*4 + 0x43018c]
movzx ebx, byte [edx + 3]
cmp bl, byte [edi + 1]
jne case.0x418f96.77
add edx, 4
mov dword [ecx], edx
movzx edx, byte [edi + 2]
cmp edx, 2
je 0x41906c
cmp edx, 4
jne case.0x418f96.77
mov ebx, dword [edi + 8]
push ebx
mov esi, ecx
call sub.msvcrt.dll_strlen
mov ecx, esi
add esp, 4
mov edx, eax
xor eax, eax
cmp byte [ebx + edx - 1], 0x2a
jne case.0x418f96.77
mov ebp, ecx
call fcn.00416ae0
mov esi, eax
xor eax, eax
test esi, esi
mov ebx, dword [esp + 4]
je case.0x418f96.77
cmp byte [esp], 0
je 0x4190a9
mov ecx, ebp
call fcn.00416ae0
test eax, eax
je 0x41918f
test bl, bl
mov ecx, esi
cmovne ecx, eax
cmovne eax, esi
mov dword [esp], eax
mov esi, ecx
jmp 0x4190b0
mov dword [esp], 0
mov ebx, dword [edi + 8]
push ebx
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 8
jb 0x419193
mov ecx, 0x7265706f
xor ecx, dword [ebx]
mov edx, 0x726f7461
xor edx, dword [ebx + 4]
or edx, ecx
jne 0x419193
lea edx, [ebx + 8]
mov edi, eax
add edi, 0xfffffff8
mov ecx, ebp
je 0x4190f9
cmp byte [edx], 0x20
jne 0x4190fb
add ebx, 9
add eax, 0xfffffff7
mov edx, ebx
mov edi, eax
jmp 0x4190fb
xor edi, edi
mov ebx, dword [ecx + 0x1198]
mov ecx, dword [ebx + 4]
lea eax, [ecx - 0xfc8]
cmp eax, 0xfffff007
ja 0x419141
mov dword [esp + 8], edx
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x4191ac
mov dword [eax], ebx
mov dword [eax + 4], 0
mov dword [ebp + 0x1198], eax
xor ecx, ecx
mov ebx, eax
mov edx, dword [esp + 8]
lea eax, [ecx + 0x30]
mov dword [ebx + 4], eax
mov byte [ebx + ecx + 0xc], 0x47
and byte [ebx + ecx + 0x10], 0xc0
movzx eax, byte [ebx + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebx + ecx + 0x14], al
mov dword [ebx + ecx + 8], 0x431258
mov dword [ebx + ecx + 0x18], esi
mov eax, dword [esp]
mov dword [ebx + ecx + 0x1c], eax
mov dword [ebx + ecx + 0x24], edi
mov dword [ebx + ecx + 0x20], edx
mov eax, dword [esp + 4]
mov byte [ebx + ecx + 0x28], al
lea eax, [ebx + ecx]
add eax, 8
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
jmp case.0x418f96.77
push str.operator_name_does_not_start_with_operator
push 0xb49
push str._home_runner_work_llvm_mingw_llvm_mingw_llvm_project_libcxxabi_src_demangle_ItaniumDemangle.h
push str._s:_d:__s
call fcn.00408350
call fcn.004027c0
int3
push ebp
push ebx
push edi
push esi
sub esp, 8
mov esi, ecx
call fcn.00412220
xor edi, edi
test eax, eax
je 0x4195e5
mov dword [esp + 4], eax
mov ecx, esi
call fcn.00416ae0
test eax, eax
je 0x4195e5
mov ebx, dword [esi]
mov edx, dword [esi + 4]
mov ecx, ebx
cmp ebx, edx
je 0x419502
cmp byte [ebx], 0x6e
mov ecx, ebx
jne 0x419502
lea ecx, [ebx + 1]
mov dword [esi], ecx
xor edi, edi
cmp edx, ecx
je 0x419536
movsx ebp, byte [ecx]
add ebp, 0xffffffd0
cmp ebp, 9
ja 0x419536
nop word cs:[eax + eax]
movsx ebp, byte [ecx]
add ebp, 0xffffffd0
cmp ebp, 9
ja 0x419543
inc ecx
mov dword [esi], ecx
cmp ecx, edx
jne 0x419520
mov ebp, edx
jmp 0x419545
xor ebp, ebp
xor ebx, ebx
cmp ecx, edx
jne 0x41954f
jmp 0x4195e5
mov ebp, ecx
sub ebp, ebx
cmp ecx, edx
je 0x4195e5
cmp byte [ecx], 0x45
jne 0x4195e5
inc ecx
mov dword [esi], ecx
mov edi, dword [esi + 0x1198]
mov ecx, dword [edi + 4]
lea edx, [ecx - 0xfd8]
cmp edx, 0xfffff007
ja 0x41959c
mov dword [esp], eax
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x4195ef
mov dword [eax], edi
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov edi, eax
mov eax, dword [esp]
lea esi, [ecx + 0x20]
mov dword [edi + 4], esi
mov byte [edi + ecx + 0xc], 0x45
mov esi, dword [edi + ecx + 0x10]
and esi, 0xffffffc0
or esi, 2
mov dword [edi + ecx + 0x10], esi
movzx edx, byte [edi + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [edi + ecx + 0x14], dl
mov dword [edi + ecx + 8], 0x43147c
mov edx, dword [esp + 4]
mov dword [edi + ecx + 0x18], edx
mov dword [edi + ecx + 0x1c], eax
mov dword [edi + ecx + 0x24], ebp
mov dword [edi + ecx + 0x20], ebx
add edi, ecx
add edi, 8
mov eax, edi
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.004027c0
int3
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov esi, ecx
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, ecx
sub edx, eax
cmp edx, 2
jb 0x4196d9
cmp word [eax], 0x5172
je 0x4196e3
cmp word [eax], 0x7172
je 0x41978b
xor eax, eax
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
add eax, 2
mov dword [esi], eax
mov edx, dword [esi + 0xc]
sub edx, dword [esi + 8]
sar edx, 2
mov dword [esp + 8], edx
lea edx, [esi + 0x14]
mov dword [esp + 4], edx
jmp 0x419731
push eax
push ebx
call sub.msvcrt.dll_realloc
add esp, 8
mov dword [esi + 8], eax
test eax, eax
je 0x419b34
lea ebp, [eax + edi]
sar edi, 1
lea eax, [eax + edi*4]
mov dword [esi + 0x10], eax
mov eax, dword [esp]
lea ecx, [ebp + 4]
mov dword [esi + 0xc], ecx
mov dword [ebp], eax
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, ecx
je 0x41973a
cmp byte [eax], 0x5f
je 0x4197a9
mov ecx, esi
call fcn.00412220
test eax, eax
je 0x4196d9
mov ebp, dword [esi + 0xc]
cmp ebp, dword [esi + 0x10]
jne 0x419723
mov dword [esp], eax
mov ebx, dword [esi + 8]
mov edi, ebp
sub edi, ebx
lea eax, [edi + edi]
cmp ebx, dword [esp + 4]
jne 0x419700
push eax
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x419b34
cmp ebp, dword [esp + 4]
je 0x419786
push edi
push ebx
push eax
mov ebx, eax
call sub.msvcrt.dll_memmove
mov eax, ebx
add esp, 0xc
mov dword [esi + 8], eax
jmp 0x419715
add eax, 2
mov dword [esi], eax
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
cmp eax, ecx
jne 0x4197cc
jmp 0x4196d9
inc eax
mov dword [esi], eax
mov ecx, esi
mov edx, dword [esp + 8]
call fcn.004140f0
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, ecx
je 0x4196d9
mov ecx, dword [esi + 0xc]
sub ecx, dword [esi + 8]
sar ecx, 2
mov dword [esp + 0x10], ecx
lea ecx, [esi + 0x14]
mov dword [esp + 4], ecx
jmp 0x4197f8
cmp eax, ecx
je 0x4196d9
cmp byte [eax], 0x58
jne 0x419840
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00416ae0
test eax, eax
je 0x4196d9
mov ebx, eax
mov eax, dword [esi]
mov ecx, dword [esi + 4]
xor ebp, ebp
cmp eax, ecx
je 0x4198d0
cmp byte [eax], 0x4e
jne 0x4198d0
inc eax
mov dword [esi], eax
mov dl, 1
mov dword [esp], edx
cmp eax, ecx
jne 0x4198db
jmp 0x4198f8
cmp byte [eax], 0x54
jne 0x419990
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00412220
test eax, eax
je 0x4196d9
mov edi, eax
mov ebx, dword [esi + 0x1198]
mov ecx, dword [ebx + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x41989b
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x419b39
mov dword [eax], ebx
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebx, eax
lea eax, [ecx + 0x20]
mov dword [ebx + 4], eax
mov byte [ebx + ecx + 0xc], 0x55
and byte [ebx + ecx + 0x10], 0xc0
lea edx, [ebx + ecx]
add edx, 8
movzx eax, byte [ebx + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebx + ecx + 0x14], al
mov dword [ebx + ecx + 8], 0x431578
jmp 0x419a16
mov dword [esp], 0
cmp eax, ecx
je 0x4198f8
cmp byte [eax], 0x52
jne 0x4198f8
inc eax
mov dword [esi], eax
mov ecx, esi
xor edx, edx
call fcn.00413650
mov ebp, eax
xor eax, eax
test ebp, ebp
je 0x4196db
mov edi, dword [esi + 0x1198]
mov ecx, dword [edi + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x419936
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x419b39
mov dword [eax], edi
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov edi, eax
lea eax, [ecx + 0x20]
mov dword [edi + 4], eax
lea edx, [edi + ecx]
add edx, 8
mov byte [edi + ecx + 0xc], 0x54
and byte [edi + ecx + 0x10], 0xc0
movzx eax, byte [edi + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [edi + ecx + 0x14], al
mov dword [edi + ecx + 8], 0x431500
mov dword [edi + ecx + 0x18], ebx
mov eax, dword [esp]
mov byte [edi + ecx + 0x1c], al
mov dword [edi + ecx + 0x20], ebp
mov ebx, dword [esi + 0xc]
cmp ebx, dword [esi + 0x10]
jne 0x419a82
jmp 0x419a22
cmp byte [eax], 0x51
jne 0x4196d9
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00416ae0
test eax, eax
je 0x4196d9
mov edi, eax
mov ebx, dword [esi + 0x1198]
mov ecx, dword [ebx + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x4199eb
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x419b39
mov dword [eax], ebx
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebx, eax
lea eax, [ecx + 0x20]
mov dword [ebx + 4], eax
mov byte [ebx + ecx + 0xc], 0x56
and byte [ebx + ecx + 0x10], 0xc0
lea edx, [ebx + ecx]
add edx, 8
movzx eax, byte [ebx + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebx + ecx + 0x14], al
mov dword [ebx + ecx + 8], 0x4315f0
mov dword [ebx + ecx + 0x18], edi
mov ebx, dword [esi + 0xc]
cmp ebx, dword [esi + 0x10]
jne 0x419a82
mov dword [esp], edx
mov ebp, dword [esi + 8]
mov edi, ebx
sub edi, ebp
lea eax, [edi + edi]
cmp ebp, dword [esp + 4]
je 0x419a4b
push eax
push ebp
call sub.msvcrt.dll_realloc
add esp, 8
mov dword [esi + 8], eax
test eax, eax
jne 0x419a74
jmp 0x419b34
push eax
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x419b34
cmp ebx, dword [esp + 4]
je 0x419a71
push edi
push ebp
push eax
mov ebx, eax
call sub.msvcrt.dll_memmove
mov eax, ebx
add esp, 0xc
mov dword [esi + 8], eax
lea ebx, [eax + edi]
sar edi, 1
lea eax, [eax + edi*4]
mov dword [esi + 0x10], eax
mov edx, dword [esp]
lea eax, [ebx + 4]
mov dword [esi + 0xc], eax
mov dword [ebx], edx
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, ecx
je 0x4197f0
cmp byte [eax], 0x45
jne 0x4197f0
inc eax
mov dword [esi], eax
mov ecx, esi
mov edx, dword [esp + 0x10]
call fcn.004140f0
mov edi, eax
mov ebx, edx
mov ebp, dword [esi + 0x1198]
mov ecx, dword [ebp + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x419aec
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x419b39
mov dword [eax], ebp
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebp, eax
lea eax, [ecx + 0x20]
mov dword [ebp + 4], eax
mov byte [ebp + ecx + 0xc], 0x53
and byte [ebp + ecx + 0x10], 0xc0
movzx eax, byte [ebp + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebp + ecx + 0x14], al
mov dword [ebp + ecx + 8], 0x431660
mov eax, dword [esp + 8]
mov dword [ebp + ecx + 0x18], eax
mov eax, dword [esp + 0xc]
mov dword [ebp + ecx + 0x1c], eax
mov dword [ebp + ecx + 0x24], ebx
mov dword [ebp + ecx + 0x20], edi
lea eax, [ecx + ebp]
add eax, 8
jmp 0x4196db
call sub.msvcrt.dll_abort
call fcn.004027c0
int3
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov edi, ecx
call fcn.00412220
xor ebp, ebp
test eax, eax
je 0x419e3e
mov dword [esp + 8], eax
mov ecx, edi
call fcn.00416ae0
mov dword [esp + 0x18], eax
test eax, eax
je 0x419e3e
mov esi, dword [edi]
mov ecx, dword [edi + 4]
mov eax, esi
cmp esi, ecx
je 0x419b86
cmp byte [esi], 0x6e
mov eax, esi
jne 0x419b86
lea eax, [esi + 1]
mov dword [edi], eax
xor ebx, ebx
cmp ecx, eax
je 0x419bb6
movsx edx, byte [eax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x419bb6
nop word [eax + eax]
movsx edx, byte [eax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x419bba
inc eax
mov dword [edi], eax
cmp eax, ecx
jne 0x419ba0
mov ebx, ecx
jmp 0x419bbc
xor esi, esi
jmp 0x419bbe
mov ebx, eax
sub ebx, esi
mov dword [esp + 0x10], ebx
mov edx, dword [edi + 0xc]
sub edx, dword [edi + 8]
mov dword [esp + 0x14], edx
cmp eax, ecx
je 0x419d5e
lea edx, [edi + 0x14]
mov dword [esp + 0xc], edx
mov dword [esp + 4], esi
jmp 0x419c5f
mov dword [eax], ebx
mov dword [eax + 4], 0
mov dword [edi + 0x1198], eax
xor esi, esi
mov ebx, eax
lea eax, [esi + 0x20]
mov dword [ebx + 4], eax
mov byte [ebx + esi + 0xc], 8
and byte [ebx + esi + 0x10], 0xc0
movzx eax, byte [ebx + esi + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebx + esi + 0x14], al
mov dword [ebx + esi + 8], 0x42fd78
mov dword [ebx + esi + 0x1c], ebp
mov eax, dword [esp]
mov dword [ebx + esi + 0x18], eax
mov ebp, dword [edi + 0xc]
cmp ebp, dword [edi + 0x10]
je 0x419cf0
lea eax, [ebx + esi]
add eax, 8
lea ecx, [ebp + 4]
mov dword [edi + 0xc], ecx
mov dword [ebp], eax
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, ecx
mov esi, dword [esp + 4]
je 0x419e3c
cmp byte [eax], 0x5f
jne 0x419d5e
inc eax
mov dword [edi], eax
xor ebp, ebp
cmp ecx, eax
je 0x419cb0
movsx edx, byte [eax]
add edx, 0xffffffd0
mov ebx, 0
cmp edx, 9
ja 0x419cb2
mov ebp, eax
nop word cs:[eax + eax]
movsx edx, byte [ebp]
add edx, 0xffffffd0
cmp edx, 9
ja 0x419ca5
inc ebp
mov dword [edi], ebp
cmp ebp, ecx
jne 0x419c90
mov ebp, ecx
sub ebp, eax
mov ebx, eax
jmp 0x419cb2
xor ebx, ebx
mov dword [esp], ebx
mov ebx, dword [edi + 0x1198]
mov esi, dword [ebx + 4]
lea eax, [esi - 0xfd8]
cmp eax, 0xfffff007
ja 0x419c03
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
jne 0x419bf0
jmp 0x419e48
mov ecx, dword [edi + 8]
mov eax, ebp
sub eax, ecx
mov dword [esp], eax
add eax, eax
cmp ecx, dword [esp + 0xc]
je 0x419d18
push eax
push ecx
call sub.msvcrt.dll_realloc
add esp, 8
mov dword [edi + 8], eax
test eax, eax
jne 0x419d4b
jmp 0x419e4d
mov dword [esp + 0x1c], ecx
push eax
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x419e4d
cmp ebp, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
je 0x419d48
push dword [esp]
push ecx
push eax
mov ebp, eax
call sub.msvcrt.dll_memmove
mov eax, ebp
add esp, 0xc
mov dword [edi + 8], eax
mov ecx, dword [esp]
lea ebp, [eax + ecx]
sar ecx, 1
lea eax, [eax + ecx*4]
mov dword [edi + 0x10], eax
jmp 0x419c3f
xor ebp, ebp
cmp eax, ecx
je 0x419d77
cmp byte [eax], 0x70
jne 0x419d77
inc eax
mov dword [edi], eax
mov bl, 1
cmp eax, ecx
jne 0x419d81
jmp 0x419e3e
xor ebx, ebx
cmp eax, ecx
je 0x419e3e
cmp byte [eax], 0x45
jne 0x419e3e
mov dword [esp + 4], esi
mov edx, dword [esp + 0x14]
sar edx, 2
inc eax
mov dword [edi], eax
mov ecx, edi
call fcn.004140f0
mov dword [esp], eax
mov ebp, edx
mov esi, dword [edi + 0x1198]
mov ecx, dword [esi + 4]
lea eax, [ecx - 0xfc8]
cmp eax, 0xfffff007
ja 0x419dde
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x419e48
mov dword [eax], esi
mov dword [eax + 4], 0
mov dword [edi + 0x1198], eax
xor ecx, ecx
mov esi, eax
mov eax, dword [esp + 8]
lea edx, [ecx + 0x30]
mov dword [esi + 4], edx
mov byte [esi + ecx + 0xc], 0x3b
and byte [esi + ecx + 0x10], 0xc0
movzx edx, byte [esi + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [esi + ecx + 0x14], dl
mov dword [esi + ecx + 8], 0x4316cc
mov dword [esi + ecx + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [esi + ecx + 0x1c], eax
mov eax, dword [esp + 0x10]
mov dword [esi + ecx + 0x24], eax
mov eax, dword [esp + 4]
mov dword [esi + ecx + 0x20], eax
mov dword [esi + ecx + 0x2c], ebp
mov eax, dword [esp]
mov dword [esi + ecx + 0x28], eax
mov byte [esi + ecx + 0x30], bl
lea ebp, [esi + ecx]
add ebp, 8
jmp 0x419e3e
xor ebp, ebp
mov eax, ebp
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.004027c0
call sub.msvcrt.dll_abort
int3
push ebp
push ebx
push edi
push esi
mov esi, edx
mov ebx, dword [ecx + 0x1198]
mov ebp, dword [ebx + 4]
lea eax, [ebp - 0xfd8]
cmp eax, 0xfffff007
ja 0x41a162
mov edi, ecx
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x41a1a7
mov dword [eax], ebx
mov dword [eax + 4], 0
mov dword [edi + 0x1198], eax
xor ebp, ebp
mov ebx, eax
lea eax, [ebp + 0x20]
mov dword [ebx + 4], eax
lea edi, [ebx + ebp]
add edi, 8
push esi
call sub.msvcrt.dll_strlen
add esp, 4
mov byte [ebx + ebp + 0xc], 8
and byte [ebx + ebp + 0x10], 0xc0
movzx ecx, byte [ebx + ebp + 0x14]
and cl, 0xc0
or cl, 0x15
mov byte [ebx + ebp + 0x14], cl
mov dword [ebx + ebp + 8], 0x42fd78
mov dword [ebx + ebp + 0x18], esi
mov dword [ebx + ebp + 0x1c], eax
mov eax, edi
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.004027c0
int3
push ebp
push ebx
push edi
push esi
mov ebx, edx
mov esi, ecx
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, ecx
sub edx, eax
cmp edx, 3
jae 0x41a24d
cmp edx, 2
je 0x41a266
jmp 0x41a271
movzx edx, word [eax]
xor edx, 0x7273
movzx edi, byte [eax + 2]
xor edi, 0x4e
or di, dx
je 0x41a453
cmp word [eax], 0x7273
je 0x41a301
mov ecx, esi
call fcn.00420930
test eax, eax
sete cl
xor bl, 1
or bl, cl
jne 0x41a781
mov edi, dword [esi + 0x1198]
mov ecx, dword [edi + 4]
lea edx, [ecx - 0xfd8]
cmp edx, 0xfffff007
ja 0x41a2cb
mov ebx, eax
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x41a786
mov dword [eax], edi
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov edi, eax
mov eax, ebx
lea edx, [ecx + 0x20]
mov dword [edi + 4], edx
mov byte [edi + ecx + 0xc], 0x2e
and byte [edi + ecx + 0x10], 0xc0
movzx edx, byte [edi + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [edi + ecx + 0x14], dl
mov dword [edi + ecx + 8], 0x431a78
mov dword [edi + ecx + 0x18], eax
lea eax, [edi + ecx]
add eax, 8
jmp 0x41a781
add eax, 2
mov dword [esi], eax
cmp ecx, eax
je 0x41a4fa
movsx eax, byte [eax]
add eax, 0xffffffd0
cmp eax, 9
ja 0x41a4fa
mov ecx, esi
call fcn.00420870
test eax, eax
je 0x41a6f6
mov ebp, eax
xor edi, edi
test bl, bl
jne 0x41a39a
jmp 0x41a60f
lea eax, [ecx + 0x20]
mov dword [ebx + 4], eax
mov byte [ebx + ecx + 0xc], 0x17
and byte [ebx + ecx + 0x10], 0xc0
movzx eax, byte [ebx + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebx + ecx + 0x14], al
mov dword [ebx + ecx + 8], 0x4318a4
mov dword [ebx + ecx + 0x18], edi
lea edi, [ebx + ecx]
add edi, 8
lea eax, [ebx + ecx]
add eax, 0x1c
mov dword [eax], ebp
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x41a387
cmp byte [eax], 0x45
je 0x41a64e
mov ecx, esi
call fcn.00420870
mov ebp, eax
xor eax, eax
test ebp, ebp
je 0x41a781
mov ebx, dword [esi + 0x1198]
mov ecx, dword [ebx + 4]
lea eax, [ecx - 0xfd8]
test edi, edi
je 0x41a3e1
cmp eax, 0xfffff007
ja 0x41a340
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x41a786
mov dword [eax], ebx
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebx, eax
jmp 0x41a340
cmp eax, 0xfffff007
ja 0x41a410
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x41a786
mov dword [eax], ebx
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebx, eax
lea eax, [ecx + 0x20]
mov dword [ebx + 4], eax
mov byte [ebx + ecx + 0xc], 0x2e
and byte [ebx + ecx + 0x10], 0xc0
lea edi, [ebx + ecx]
add edi, 8
movzx eax, byte [ebx + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebx + ecx + 0x14], al
mov dword [ebx + ecx + 8], 0x431a78
lea eax, [ebx + ecx]
add eax, 0x18
mov dword [eax], ebp
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jne 0x41a37e
jmp 0x41a387
add eax, 3
mov dword [esi], eax
mov ecx, esi
call fcn.00420730
test eax, eax
je 0x41a6f6
mov edi, eax
mov eax, dword [esi]
cmp dword [esi + 4], eax
je 0x41a675
cmp byte [eax], 0x49
jne 0x41a675
mov ecx, esi
xor edx, edx
call fcn.00415540
mov ebx, eax
xor eax, eax
test ebx, ebx
je 0x41a781
mov ebp, dword [esi + 0x1198]
mov ecx, dword [ebp + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x41a4d0
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x41a786
mov dword [eax], ebp
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebp, eax
lea eax, [ecx + 0x20]
mov dword [ebp + 4], eax
mov byte [ebp + ecx + 0xc], 0x2d
and byte [ebp + ecx + 0x10], 0xc0
movzx eax, byte [ebp + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebp + ecx + 0x14], al
mov dword [ebp + ecx + 8], 0x432050
jmp 0x41a667
mov ecx, esi
call fcn.00420730
test eax, eax
je 0x41a6f6
mov edi, eax
mov eax, dword [esi]
cmp dword [esi + 4], eax
je 0x41a651
cmp byte [eax], 0x49
jne 0x41a651
mov ecx, esi
xor edx, edx
call fcn.00415540
mov ebx, eax
xor eax, eax
test ebx, ebx
je 0x41a781
mov ebp, dword [esi + 0x1198]
mov ecx, dword [ebp + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x41a572
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x41a786
mov dword [eax], ebp
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebp, eax
lea eax, [ecx + 0x20]
mov dword [ebp + 4], eax
mov byte [ebp + ecx + 0xc], 0x2d
and byte [ebp + ecx + 0x10], 0xc0
movzx eax, byte [ebp + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebp + ecx + 0x14], al
mov dword [ebp + ecx + 8], 0x432050
mov dword [ebp + ecx + 0x18], edi
lea edi, [ecx + ebp]
add edi, 8
mov dword [ebp + ecx + 0x1c], ebx
jmp 0x41a651
mov dword [eax], ebx
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebx, eax
lea eax, [ecx + 0x20]
mov dword [ebx + 4], eax
mov byte [ebx + ecx + 0xc], 0x17
and byte [ebx + ecx + 0x10], 0xc0
movzx eax, byte [ebx + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebx + ecx + 0x14], al
mov dword [ebx + ecx + 8], 0x4318a4
mov dword [ebx + ecx + 0x18], edi
lea edi, [ebx + ecx]
add edi, 8
mov dword [ebx + ecx + 0x1c], ebp
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x41a5fc
cmp byte [eax], 0x45
je 0x41a64e
mov ecx, esi
call fcn.00420870
mov ebp, eax
xor eax, eax
test ebp, ebp
je 0x41a781
test edi, edi
je 0x41a643
mov ebx, dword [esi + 0x1198]
mov ecx, dword [ebx + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x41a5bd
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
jne 0x41a5aa
jmp 0x41a786
mov edi, ebp
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jne 0x41a5f7
jmp 0x41a5fc
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00420930
test eax, eax
je 0x41a6f6
mov ebx, eax
jmp 0x41a712
mov dword [ebp + ecx + 0x18], edi
lea edi, [ecx + ebp]
add edi, 8
mov dword [ebp + ecx + 0x1c], ebx
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x41a681
cmp byte [eax], 0x45
je 0x41a6fd
mov ecx, esi
call fcn.00420870
test eax, eax
je 0x41a6f6
mov ebx, eax
mov ebp, dword [esi + 0x1198]
mov ecx, dword [ebp + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x41a6cc
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x41a786
mov dword [eax], ebp
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebp, eax
lea eax, [ecx + 0x20]
mov dword [ebp + 4], eax
mov byte [ebp + ecx + 0xc], 0x17
and byte [ebp + ecx + 0x10], 0xc0
movzx eax, byte [ebp + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebp + ecx + 0x14], al
mov dword [ebp + ecx + 8], 0x4318a4
jmp 0x41a667
xor eax, eax
jmp 0x41a781
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.00420930
mov ebx, eax
mov eax, 0
test ebx, ebx
je 0x41a781
mov ebp, dword [esi + 0x1198]
mov ecx, dword [ebp + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x41a74c
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x41a786
mov dword [eax], ebp
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebp, eax
lea eax, [ecx + 0x20]
mov dword [ebp + 4], eax
mov byte [ebp + ecx + 0xc], 0x17
and byte [ebp + ecx + 0x10], 0xc0
lea eax, [ecx + ebp]
add eax, 8
movzx edx, byte [ebp + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [ebp + ecx + 0x14], dl
mov dword [ebp + ecx + 8], 0x4318a4
mov dword [ebp + ecx + 0x18], edi
mov dword [ebp + ecx + 0x1c], ebx
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.004027c0
int3