Function at 0x420020
Capabilities:
Encode data using base64

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x38
mov ebp, dword [ecx]
mov ebx, dword [ecx + 4]
mov dword [esp + 0xc], ebx
sub ebx, ebp
xor eax, eax
cmp ebx, 2
jae 0x420041
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp], ecx
push 2
push ebp
push 0x43ef79
call sub.msvcrt.dll_strncmp
add esp, 0xc
mov edx, eax
xor edi, edi
test eax, eax
je 0x420060
xor ecx, ecx
jmp 0x420077
add ebp, 2
mov eax, dword [esp]
mov dword [eax], ebp
mov ebx, dword [esp + 0xc]
sub ebx, ebp
mov cl, 1
xor eax, eax
cmp ebx, 2
jb case.0x420164.10
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], ecx
movzx ecx, byte [ebp]
mov edx, 0x3d
jmp 0x420097
inc eax
mov edi, eax
cmp edx, edi
je 0x4200c6
lea eax, [edi + edx]
shr eax, 1
lea esi, [eax*4]
cmp cl, byte [esi + esi*2 + 0x43f22c]
jg 0x420090
jne 0x4200c0
mov ch, byte [esi + esi*2 + 0x43f22d]
cmp byte [ebp + 1], ch
setg ch
test ch, 1
jne 0x420090
mov edx, eax
cmp edx, edi
jne 0x420097
lea eax, [edi + edi*2]
cmp cl, byte [eax*4 + 0x43f22c]
jne 0x42021d
lea ecx, [eax*4 + 0x43f22c]
movzx eax, byte [ebp + 1]
cmp al, byte [ecx + 1]
jne 0x42021d
lea ebx, [ebp + 2]
mov eax, dword [esp]
mov dword [eax], ebx
movzx edi, byte [ecx + 2]
mov dword [esp + 0x14], ecx
mov esi, dword [ecx + 8]
push esi
call sub.msvcrt.dll_strlen
mov ecx, edi
add esp, 4
mov edi, eax
mov edx, esi
cmp ecx, 0xa
ja case.default.0x420164
mov dword [esp + 0x24], ecx
cmp edi, 8
jb 0x421140
push 8
push esi
push 0x43f030
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x421140
cmp edi, 8
mov edx, 8
cmovb edx, edi
add edx, esi
cmp edi, 9
mov ecx, dword [esp + 0x24]
jb case.default.0x420164
xor eax, eax
cmp byte [edx], 0x20
sete al
add edx, eax
add esi, edi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], esi
xor eax, eax
mov edi, esi
jmp dword [ecx*4 + 0x441c60]
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 4]
mov ecx, dword [esp]
mov ebp, edx
call fcn.00420020
mov ebx, eax
xor eax, eax
test ebx, ebx
je case.0x420164.10
mov dword [esp + 0xc], edi
mov eax, dword [esp]
mov edi, dword [eax + 0x1198]
mov ecx, dword [edi + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x4201d0
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x421173
mov dword [eax], edi
mov dword [eax + 4], 0
mov ecx, dword [esp]
mov dword [ecx + 0x1198], eax
xor ecx, ecx
mov edi, eax
mov edx, ebp
lea eax, [ecx + 0x20]
mov dword [edi + 4], eax
mov byte [edi + ecx + 0xc], 0x3e
mov eax, dword [edi + ecx + 0x10]
and esi, 0x3f
and eax, 0xffffffc0
or eax, esi
mov dword [edi + ecx + 0x10], eax
movzx eax, byte [edi + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [edi + ecx + 0x14], al
mov dword [edi + ecx + 8], 0x43f5d8
mov eax, dword [esp + 0xc]
mov dword [edi + ecx + 0x1c], eax
mov dword [edi + ecx + 0x18], ebp
mov dword [edi + ecx + 0x20], ebx
lea eax, [edi + ecx]
add eax, 8
jmp case.0x420164.10
movzx esi, byte [ebp]
cmp esi, 0x66
mov ecx, dword [esp]
je 0x42024b
cmp esi, 0x54
je 0x42023f
cmp esi, 0x4c
jne 0x420280
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
jmp 0x421780
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.0041f1d0
movzx eax, byte [ebp + 1]
cmp al, 0x70
je 0x420274
cmp al, 0x4c
jne 0x420413
cmp ebx, 3
jb 0x420413
movsx eax, byte [ebp + 2]
add eax, 0xffffffd0
cmp eax, 9
ja 0x420413
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
jmp 0x422130
push 2
push ebp
push 0x43ef7f
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x42041f
push 2
push ebp
push 0x43ef82
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4204dc
push 2
push ebp
push 0x43ef85
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4204f0
push 2
push ebp
push 0x43ef92
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x420a3b
push 2
push ebp
push 0x43ef95
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x420b2a
push 2
push ebp
push 0x43ef98
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x420ca0
push 2
push ebp
push 0x43efa6
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x420d94
push 2
push ebp
push 0x43efa9
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x420de3
push 2
push ebp
push 0x43efac
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x420e46
push 2
push ebp
push 0x43efb5
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x420eb5
cmp ebp, dword [esp + 0xc]
je 0x420f82
mov eax, esi
cmp al, 0x75
jne 0x420f82
inc ebp
mov ecx, dword [esp]
mov dword [ecx], ebp
call fcn.0041e5d0
mov dword [esp + 0x2c], eax
test eax, eax
je 0x421134
mov edi, eax
mov eax, dword [eax]
mov ebx, dword [eax + 0x18]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
call ebx
sub edx, eax
cmp edx, 8
jne 0x4203cd
push 8
push str.__uuidof
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4210dc
mov ecx, dword [esp]
lea ebx, [ecx + 8]
mov edi, dword [ecx + 0xc]
sub edi, dword [ecx + 8]
lea ebp, [esp + 4]
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
je 0x4203ed
cmp byte [eax], 0x45
je 0x4210aa
call fcn.0041d3c0
mov dword [esp + 4], eax
test eax, eax
je 0x421134
mov ecx, ebx
mov edx, ebp
call fcn.0041d5b0
mov ecx, dword [esp]
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
jne 0x4203e4
jmp 0x4203ed
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
jmp 0x422430
add ebp, 2
mov edi, dword [esp]
mov dword [edi], ebp
mov eax, dword [edi + 0xc]
sub eax, dword [edi + 8]
sar eax, 2
mov dword [esp + 0x14], eax
lea eax, [edi + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xc]
jmp 0x42047b
push edx
push eax
call sub.msvcrt.dll_realloc
add esp, 8
mov ebp, eax
mov dword [edi + 8], eax
test eax, eax
je 0x42113b
lea eax, [esi + ebp]
sar esi, 1
mov dword [edi + 0xc], eax
lea edx, [esi*4]
add edx, ebp
mov dword [edi + 0x10], edx
mov esi, eax
lea eax, [esi + 4]
mov dword [edi + 0xc], eax
mov dword [esi], ebx
mov ebp, dword [edi]
mov eax, dword [edi + 4]
cmp ebp, eax
je 0x420489
cmp byte [ebp], 0x45
je 0x42052b
mov ecx, edi
call fcn.004226c0
test eax, eax
je 0x421134
mov ebx, eax
mov esi, dword [edi + 0xc]
cmp esi, dword [edi + 0x10]
jne 0x42046e
mov eax, dword [edi + 8]
sub esi, eax
lea edx, [esi + esi]
cmp eax, dword [esp + 0x20]
jne 0x420441
push edx
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x421155
mov ebp, eax
push esi
push dword [esp + 0x24]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edi, dword [esp]
mov dword [edi + 8], ebp
jmp 0x420458
add ebp, 2
mov ecx, dword [esp]
mov dword [ecx], ebp
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
jmp 0x4229c0
add ebp, 2
mov esi, dword [esp]
mov dword [esi], ebp
mov ecx, esi
call fcn.00420020
mov dword [esp + 4], eax
test eax, eax
je 0x421134
mov dword [esp + 0x2c], 2
lea eax, [esp + 0x2c]
lea edx, [esp + 4]
mov ecx, esi
push eax
call fcn.00422af0
add esp, 4
jmp case.0x420164.10
inc ebp
mov dword [edi], ebp
mov ecx, edi
mov edx, dword [esp + 0x14]
call fcn.0041d6c0
mov dword [esp + 8], edx
mov dword [esp + 4], eax
lea edx, [esp + 4]
mov ecx, edi
call fcn.00422930
jmp case.0x420164.10
cmp ebx, dword [esp + 0xc]
je 0x420ae6
cmp byte [ebx], 0x5f
jne 0x420ae6
mov ecx, edi
add ebp, 3
mov edi, dword [esp]
mov dword [edi], ebp
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp + 0x18], eax
mov ecx, edi
call fcn.00420020
mov dword [esp + 0x10], eax
test eax, eax
je 0x421134
lea eax, [esp + 0x18]
lea esi, [esp + 0x10]
lea edx, [esp + 4]
mov ecx, edi
push eax
push esi
call fcn.00423c50
add esp, 8
jmp case.0x420164.10
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp + 0x18], eax
mov ebx, dword [esp]
mov ecx, ebx
call fcn.00420020
mov dword [esp + 0x10], eax
test eax, eax
je 0x421134
mov ecx, ebx
call fcn.00420020
mov dword [esp + 0x28], eax
test eax, eax
je 0x421134
lea eax, [esp + 0x18]
lea esi, [esp + 0x28]
lea edi, [esp + 4]
lea edx, [esp + 0x10]
mov ecx, ebx
push eax
push esi
push edi
call fcn.00423810
add esp, 0xc
jmp case.0x420164.10
mov edi, dword [esp]
mov ecx, edi
call fcn.00420020
mov dword [esp + 4], eax
test eax, eax
je 0x421134
mov ecx, edi
call fcn.00420020
mov dword [esp + 0x18], eax
test eax, eax
je 0x421134
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
lea esi, [esp + 0x18]
lea edx, [esp + 4]
mov ecx, edi
push eax
push esi
call fcn.00421250
add esp, 8
jmp case.0x420164.10
mov ebx, dword [esp]
mov ecx, ebx
call fcn.00420020
mov dword [esp + 4], eax
test eax, eax
je 0x421134
mov ecx, ebx
call fcn.00420020
mov dword [esp + 0x18], eax
test eax, eax
je 0x421134
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
lea esi, [esp + 0x18]
lea edi, [esp + 0x2c]
lea edx, [esp + 4]
mov ecx, ebx
push eax
push esi
push edi
call fcn.00421300
add esp, 0xc
jmp case.0x420164.10
mov edi, dword [esp]
mov eax, dword [edi + 0xc]
sub eax, dword [edi + 8]
sar eax, 2
mov dword [esp + 0x34], eax
lea eax, [edi + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc]
jmp 0x42071f
push edx
push eax
call sub.msvcrt.dll_realloc
add esp, 8
mov ebx, eax
mov dword [edi + 8], eax
test eax, eax
je 0x42115a
lea eax, [ebx + esi]
sar esi, 1
mov dword [edi + 0xc], eax
lea edx, [ebx + esi*4]
mov dword [edi + 0x10], edx
mov esi, eax
lea eax, [esi + 4]
mov dword [edi + 0xc], eax
mov dword [esi], ebp
mov ebx, dword [edi]
mov eax, dword [edi + 4]
cmp ebx, eax
je 0x42072c
cmp byte [ebx], 0x5f
je 0x420c2c
mov ecx, edi
call fcn.00420020
test eax, eax
je 0x421134
mov ebp, eax
mov esi, dword [edi + 0xc]
cmp esi, dword [edi + 0x10]
jne 0x420712
mov eax, dword [edi + 8]
sub esi, eax
lea edx, [esi + esi]
cmp eax, dword [esp + 0x24]
jne 0x4206eb
push edx
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x421164
mov ebx, eax
push esi
push dword [esp + 0x28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edi, dword [esp]
mov dword [edi + 8], ebx
jmp 0x420702
mov ecx, dword [esp]
call fcn.00420020
mov ebx, eax
xor eax, eax
test ebx, ebx
je case.0x420164.10
mov eax, dword [esp + 0x14]
movzx edx, byte [eax + 3]
mov edi, dword [eax + 4]
mov eax, dword [esp]
mov esi, dword [eax + 0x1198]
mov ecx, dword [esi + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x4207e8
mov byte [esp + 0xc], dl
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x421178
mov dword [eax], esi
mov dword [eax + 4], 0
mov ecx, dword [esp]
mov dword [ecx + 0x1198], eax
xor ecx, ecx
mov esi, eax
movzx edx, byte [esp + 0xc]
lea eax, [ecx + 0x20]
mov dword [esi + 4], eax
mov byte [esi + ecx + 0xc], 0x3d
mov eax, dword [esi + ecx + 0x10]
and edi, 0x3f
and eax, 0xffffffc0
or eax, edi
mov dword [esi + ecx + 0x10], eax
movzx eax, byte [esi + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [esi + ecx + 0x14], al
mov dword [esi + ecx + 8], 0x43f7e4
mov dword [esi + ecx + 0x18], ebx
mov eax, dword [esp + 0x20]
mov byte [esi + ecx + 0x1c], al
and dl, 1
mov byte [esi + ecx + 0x1d], dl
lea eax, [esi + ecx]
add eax, 8
jmp case.0x420164.10
mov esi, dword [esp]
mov ecx, esi
call fcn.00420020
mov dword [esp + 0x18], eax
test eax, eax
je 0x421134
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 2
mov dword [esp + 0x20], eax
lea eax, [esi + 0x14]
mov dword [esp + 0xc], eax
jmp 0x420891
push edx
push eax
call sub.msvcrt.dll_realloc
add esp, 8
mov ebx, eax
mov dword [esi + 8], eax
test eax, eax
je 0x42115f
lea eax, [ebx + edi]
sar edi, 1
mov dword [esi + 0xc], eax
lea edx, [ebx + edi*4]
mov dword [esi + 0x10], edx
mov edi, eax
lea eax, [edi + 4]
mov dword [esi + 0xc], eax
mov dword [edi], ebp
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x4208a1
cmp byte [eax], 0x45
je 0x420d36
mov ecx, esi
call fcn.00420020
test eax, eax
je 0x421134
mov ebp, eax
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 0x10]
jne 0x420889
mov eax, dword [esi + 8]
sub edi, eax
lea edx, [edi + edi]
cmp eax, dword [esp + 0xc]
jne 0x420862
push edx
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x421169
mov ebx, eax
push edi
push dword [esp + 0x10]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, dword [esp]
mov dword [esi + 8], ebx
jmp 0x420879
mov esi, dword [esp]
movzx ebx, byte [esi + 0x184]
mov byte [esi + 0x184], 0
mov ecx, esi
call fcn.0041bc20
mov dword [esp + 0x18], eax
mov byte [esi + 0x184], bl
test eax, eax
je 0x421134
mov ecx, esi
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 2
mov dword [esp + 0x20], eax
mov eax, dword [esi]
mov edx, dword [esi + 4]
cmp eax, edx
je 0x420c14
cmp byte [eax], 0x5f
jne 0x420c14
inc eax
mov dword [ecx], eax
lea esi, [ecx + 0x14]
mov dword [esp + 0xc], esi
jmp 0x420a87
mov ebx, dword [esp]
mov ecx, ebx
call fcn.00420020
mov dword [esp + 4], eax
test eax, eax
je 0x421134
mov ecx, ebx
call fcn.00420020
mov dword [esp + 0x18], eax
test eax, eax
je 0x421134
mov ecx, ebx
call fcn.00420020
mov dword [esp + 0x10], eax
test eax, eax
je 0x421134
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
lea esi, [esp + 0x10]
lea edi, [esp + 0x18]
lea edx, [esp + 4]
mov ecx, ebx
push eax
push esi
push edi
call fcn.00421610
add esp, 0xc
jmp case.0x420164.10
add ebp, 2
mov ecx, dword [esp]
mov dword [ecx], ebp
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
jmp 0x422ba0
mov esi, ecx
push edx
push eax
call sub.msvcrt.dll_realloc
add esp, 8
mov ebx, eax
mov dword [esi + 8], eax
test eax, eax
mov ecx, esi
je 0x420d31
lea eax, [ebx + edi]
sar edi, 1
mov dword [ecx + 0xc], eax
lea edx, [ebx + edi*4]
mov dword [ecx + 0x10], edx
mov edi, eax
lea eax, [edi + 4]
mov dword [ecx + 0xc], eax
mov dword [edi], ebp
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
cmp eax, edx
je 0x420a94
cmp byte [eax], 0x45
je 0x420e92
mov esi, ecx
call fcn.00420020
test eax, eax
je 0x421134
mov ebp, eax
mov edi, dword [esi + 0xc]
cmp edi, dword [esi + 0x10]
mov ecx, esi
jne 0x420a7a
mov eax, dword [ecx + 8]
sub edi, eax
lea edx, [edi + edi]
cmp eax, dword [esp + 0xc]
jne 0x420a4f
push edx
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x42116e
mov ebx, eax
push edi
push dword [esp + 0x10]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp]
mov dword [ecx + 8], ebx
jmp 0x420a6a
mov edi, dword [esp]
mov ecx, edi
call fcn.00420020
mov dword [esp + 4], eax
test eax, eax
je 0x421134
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
lea esi, [esp + 0x2c]
lea edx, [esp + 4]
mov ecx, edi
push eax
push esi
call fcn.004211a0
add esp, 8
jmp case.0x420164.10
add ebp, 2
mov esi, dword [esp]
mov dword [esi], ebp
mov ecx, esi
call fcn.00420020
mov dword [esp + 4], eax
test eax, eax
je 0x421134
lea edx, [esp + 4]
mov ecx, esi
call fcn.00422ec0
jmp case.0x420164.10
cmp eax, edx
je 0x420cdf
cmp byte [eax], 0x45
jne 0x420cdf
xor ebx, ebx
jmp 0x420e94
inc ebx
mov dword [edi], ebx
mov ecx, edi
mov edx, dword [esp + 0x34]
call fcn.0041d6c0
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov ecx, edi
call fcn.0041bc20
mov dword [esp + 0x10], eax
test eax, eax
je 0x421134
mov esi, dword [edi]
mov ebx, dword [edi + 4]
mov eax, ebx
sub eax, esi
cmp eax, 2
jb 0x420c7f
push 2
push esi
push 0x43ef7c
call sub.msvcrt.dll_strncmp
mov edi, dword [esp + 0xc]
add esp, 0xc
test eax, eax
je 0x420ee0
cmp esi, ebx
je 0x421134
cmp byte [esi], 0x45
mov eax, 0
jne case.0x420164.10
mov edx, dword [edi + 0xc]
sub edx, dword [edi + 8]
jmp 0x421050
add ebp, 2
mov esi, dword [esp]
mov dword [esi], ebp
cmp dword [esp + 0xc], ebp
je 0x420d7c
cmp byte [ebp], 0x54
jne 0x420d7c
mov ecx, esi
call fcn.0041f1d0
mov dword [esp + 4], eax
test eax, eax
je 0x421134
lea edx, [esp + 4]
mov ecx, esi
call fcn.00422f40
jmp case.0x420164.10
mov edi, ecx
call fcn.00420020
mov ebp, eax
test eax, eax
mov eax, 0
je case.0x420164.10
mov esi, dword [edi + 0xc]
cmp esi, dword [edi + 0x10]
mov ecx, edi
jne 0x420ff9
lea edi, [ecx + 0x14]
mov eax, dword [ecx + 8]
sub esi, eax
lea edx, [esi + esi]
cmp eax, edi
je 0x420fc3
mov ebx, ecx
push edx
push eax
call sub.msvcrt.dll_realloc
add esp, 8
mov edi, eax
mov dword [ebx + 8], eax
test eax, eax
mov ecx, ebx
jne 0x420fe9
call fcn.0040bf90
inc eax
mov dword [esi], eax
mov ecx, esi
mov edi, esi
mov edx, dword [esp + 0x20]
call fcn.0041d6c0
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
lea esi, [esp + 4]
lea edx, [esp + 0x18]
mov ecx, edi
push eax
push esi
call fcn.004214b0
add esp, 8
jmp case.0x420164.10
mov ecx, esi
call 0x422130
mov dword [esp + 4], eax
test eax, eax
je 0x421134
jmp 0x420e82
add ebp, 2
mov esi, dword [esp]
mov dword [esi], ebp
lea edi, [esi + 8]
mov ebx, dword [esi + 0xc]
sub ebx, dword [esi + 8]
sar ebx, 2
mov eax, dword [esp + 0xc]
cmp ebp, eax
je 0x420dba
cmp byte [ebp], 0x45
je 0x420e5f
mov ecx, esi
call fcn.0041d3c0
mov dword [esp + 4], eax
test eax, eax
je 0x421134
mov ecx, edi
lea edx, [esp + 4]
call fcn.0041d5b0
mov ebp, dword [esi]
mov eax, dword [esi + 4]
cmp ebp, eax
jne 0x420db0
jmp 0x420dba
add ebp, 2
mov esi, dword [esp]
mov dword [esi], ebp
mov ecx, esi
call fcn.0041bc20
mov dword [esp + 0x2c], eax
test eax, eax
je 0x421134
lea ebp, [esi + 8]
mov edi, dword [esi + 0xc]
sub edi, dword [esi + 8]
sar edi, 2
lea ebx, [esp + 4]
mov ecx, esi
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
je 0x420e20
cmp byte [eax], 0x45
je 0x420f9b
call fcn.004226c0
mov dword [esp + 4], eax
test eax, eax
je 0x421134
mov ecx, ebp
mov edx, ebx
call fcn.0041d5b0
mov ecx, dword [esp]
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
jne 0x420e17
jmp 0x420e20
add ebp, 2
mov ecx, dword [esp]
mov dword [ecx], ebp
mov edx, str.throw
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
jmp 0x423180
inc ebp
mov dword [esi], ebp
mov ecx, esi
mov edx, ebx
call fcn.0041d6c0
mov dword [esp + 8], edx
mov dword [esp + 4], eax
lea edx, [esp + 4]
mov ecx, esi
call fcn.00423060
mov dword [esp + 4], eax
lea edx, [esp + 4]
mov ecx, esi
call fcn.00422fc0
jmp case.0x420164.10
mov bl, 1
inc eax
mov dword [ecx], eax
mov edx, dword [esp + 0x20]
call fcn.0041d6c0
mov dword [esp + 8], edx
mov dword [esp + 4], eax
test bl, bl
je 0x421012
jmp 0x42101d
add ebp, 2
mov esi, dword [esp]
mov dword [esi], ebp
mov ecx, esi
call fcn.00420020
mov dword [esp + 4], eax
test eax, eax
je 0x421134
lea edx, [esp + 4]
mov ecx, esi
call fcn.00423210
jmp case.0x420164.10
add esi, 2
mov dword [edi], esi
mov eax, dword [edi + 0xc]
sub eax, dword [edi + 8]
mov dword [esp + 0xc], eax
jmp 0x420f25
push edx
push eax
call sub.msvcrt.dll_realloc
add esp, 8
mov ebx, eax
mov dword [edi + 8], eax
test eax, eax
je 0x421182
lea eax, [ebx + esi]
sar esi, 1
mov dword [edi + 0xc], eax
lea edx, [ebx + esi*4]
mov dword [edi + 0x10], edx
mov esi, eax
lea eax, [esi + 4]
mov dword [edi + 0xc], eax
mov dword [esi], ebp
mov esi, dword [edi]
mov ebx, dword [edi + 4]
cmp esi, ebx
je 0x420f32
cmp byte [esi], 0x45
je 0x42104c
mov ecx, edi
call fcn.00420020
test eax, eax
je 0x421134
mov ebp, eax
mov esi, dword [edi + 0xc]
cmp esi, dword [edi + 0x10]
jne 0x420f18
mov eax, dword [edi + 8]
sub esi, eax
lea edx, [esi + esi]
cmp eax, dword [esp + 0x24]
jne 0x420ef1
push edx
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x421187
mov ebx, eax
push esi
push dword [esp + 0x28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edi, dword [esp]
mov dword [edi + 8], ebx
jmp 0x420f08
xor edx, edx
cmp dword [esp + 0x14], 0
sete dl
mov ecx, dword [esp]
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
jmp 0x423290
inc eax
mov dword [ecx], eax
mov esi, ecx
mov edx, edi
call fcn.0041d6c0
mov dword [esp + 8], edx
mov dword [esp + 4], eax
lea edx, [esp + 0x2c]
mov ecx, esi
push ebx
call fcn.004230f0
add esp, 4
jmp case.0x420164.10
mov ebx, edi
push edx
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x42116e
mov edi, eax
push esi
push ebx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp]
mov dword [ecx + 8], edi
lea eax, [edi + esi]
sar esi, 1
mov dword [ecx + 0xc], eax
lea edx, [edi + esi*4]
mov dword [ecx + 0x10], edx
mov esi, eax
lea eax, [esi + 4]
mov dword [ecx + 0xc], eax
mov dword [esi], ebp
mov edx, dword [esp + 0x20]
call fcn.0041d6c0
mov dword [esp + 8], edx
mov dword [esp + 4], eax
xor eax, eax
cmp edx, 1
jne case.0x420164.10
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x19
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
lea esi, [esp + 4]
lea edx, [esp + 0x18]
mov ecx, dword [esp]
push eax
push esi
call fcn.00421560
add esp, 8
jmp case.0x420164.10
mov edx, dword [esp + 0xc]
sar edx, 2
inc esi
mov dword [edi], esi
mov ecx, edi
mov ebp, edi
call fcn.0041d6c0
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + 3]
and al, 1
mov ecx, dword [ecx + 4]
shl ecx, 0x19
sar ecx, 0x19
mov dword [esp + 0x28], ecx
lea esi, [esp + 0x28]
movzx eax, al
movzx edi, byte [esp + 0x20]
lea ebx, [esp + 0x18]
lea edx, [esp + 4]
mov ecx, ebp
push esi
push eax
push edi
push ebx
lea eax, [esp + 0x20]
push eax
call fcn.004213c0
add esp, 0x14
jmp case.0x420164.10
inc eax
mov dword [ecx], eax
sar edi, 2
mov ebx, ecx
mov edx, edi
call fcn.0041d6c0
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp + 0x10], 1
lea eax, [esp + 0x10]
lea esi, [esp + 4]
lea edx, [esp + 0x2c]
mov ecx, ebx
jmp 0x420d6d
mov ecx, dword [esp]
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
je 0x4203cd
cmp byte [eax], 0x74
jne 0x4210fc
inc eax
mov ecx, dword [esp]
mov dword [ecx], eax
call fcn.0041bc20
jmp 0x421110
cmp byte [eax], 0x7a
jne 0x4203cd
inc eax
mov ecx, dword [esp]
mov dword [ecx], eax
call fcn.00420020
mov dword [esp + 0x18], eax
test eax, eax
je 0x421134
mov esi, dword [esp]
lea ecx, [esi + 8]
mov edi, dword [esi + 0xc]
sub edi, dword [esi + 8]
lea edx, [esp + 0x18]
call fcn.0041d5b0
mov ecx, esi
jmp 0x4210ad
xor eax, eax
jmp case.0x420164.10
call fcn.0040bf90
push 0xa47
push str._home_runner_work_llvm_mingw_llvm_mingw_llvm_project_libcxxabi_src_demangle_ItaniumDemangle.h
push str.Res.startsWith__operator_____operator_name_does_not_start_with_operator_
call dword [sym.imp.msvcrt.dll__assert]
call fcn.0040bf90
call fcn.0040bf90
call fcn.0040bf90
call fcn.0040bf90
call fcn.0040bf90
call fcn.0040bf90
call fcn.0040bf90
call fcn.0040bf90
call fcn.0040bf90
call fcn.0040bf90
call fcn.0040bf90
mov byte [esi + 0x184], bl
push eax
call fcn.0040b9c0
int3
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov ebx, dword [ecx]
mov ebp, dword [ecx + 4]
xor edx, edx
cmp ebx, ebp
je case.0x4217b7.84
cmp byte [ebx], 0x4c
jne case.0x4217b7.84
mov edi, ecx
lea esi, [ebx + 1]
mov dword [ecx], esi
mov eax, ebp
sub eax, esi
je case.0x4217b7.66
movsx ecx, byte [esi]
add ecx, 0xffffffbf
cmp ecx, 0x38
ja case.0x4217b7.66
jmp dword [ecx*4 + 0x441c94]
mov ecx, edi
call fcn.0041bc20
mov dword [esp + 4], eax
xor edx, edx
test eax, eax
je case.0x4217b7.84
mov eax, dword [edi]
cmp eax, dword [edi + 4]
je case.0x4217b7.84
cmp byte [eax], 0x45
jne case.0x4217b7.84
inc eax
mov dword [edi], eax
lea edx, [esp + 4]
mov ecx, edi
call fcn.00424cf0
jmp 0x42189a
mov ecx, edi
call fcn.0041bc20
mov dword [esp + 0xc], eax
test eax, eax
je 0x4220bb
mov edx, dword [edi]
mov ecx, dword [edi + 4]
mov eax, edx
cmp edx, ecx
je 0x421824
cmp byte [edx], 0x6e
mov eax, edx
jne 0x421824
lea eax, [edx + 1]
mov dword [edi], eax
cmp ecx, eax
je 0x421858
movsx ebx, byte [eax]
add ebx, 0xffffffd0
xor esi, esi
cmp ebx, 9
ja 0x42185c
nop word cs:[eax + eax]
movsx esi, byte [eax]
add esi, 0xffffffd0
cmp esi, 9
ja 0x421854
inc eax
mov dword [edi], eax
cmp eax, ecx
jne 0x421840
mov eax, ecx
mov esi, eax
jmp 0x42185e
mov eax, ecx
xor esi, esi
xor edx, edx
mov dword [esp + 8], esi
mov dword [esp + 4], edx
cmp esi, edx
je 0x4220bb
cmp eax, ecx
mov edx, 0
je case.0x4217b7.84
cmp byte [eax], 0x45
jne case.0x4217b7.84
inc eax
mov dword [edi], eax
lea eax, [esp + 4]
lea edx, [esp + 0xc]
mov ecx, edi
push eax
call fcn.00425570
add esp, 4
mov edx, eax
jmp case.0x4217b7.84
add ebx, 2
mov dword [edi], ebx
mov ecx, edi
mov edx, str.short
push 0x43fa84
jmp 0x4220fe
add ebx, 2
mov dword [edi], ebx
mov ecx, edi
mov edx, 0x43fa9c
push 0x43fa9e
jmp 0x4220fe
add ebx, 2
mov dword [edi], ebx
mov ecx, edi
mov edx, 0x43fa95
push 0x43fa96
jmp 0x4220fe
lea esi, [ebx + 2]
mov dword [edi], esi
mov eax, ebp
sub eax, esi
cmp eax, 9
jb case.0x4217b7.84
movsx eax, byte [ebx + 2]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 3]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 4]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 5]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 6]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 7]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 8]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 9]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
mov dword [esp], esi
lea eax, [ebx + 0xa]
mov dword [edi], eax
cmp eax, ebp
je 0x4220bb
cmp byte [eax], 0x45
mov edx, 0
jne case.0x4217b7.84
mov ebp, eax
add ebx, 0xb
mov dword [edi], ebx
mov esi, dword [edi + 0x1198]
mov ecx, dword [esi + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x421a08
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x422125
mov dword [eax], esi
mov dword [eax + 4], 0
mov dword [edi + 0x1198], eax
xor ecx, ecx
mov esi, eax
lea eax, [ecx + 0x20]
mov dword [esi + 4], eax
mov byte [esi + ecx + 0xc], 0x4a
and byte [esi + ecx + 0x10], 0xc0
lea edx, [esi + ecx]
add edx, 8
movzx eax, byte [esi + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [esi + ecx + 0x14], al
mov dword [esi + ecx + 8], 0x43fba4
mov eax, dword [esp]
mov dword [esi + ecx + 0x18], eax
mov dword [esi + ecx + 0x1c], ebp
jmp case.0x4217b7.84
cmp eax, 2
jb case.0x4217b7.84
push 2
push esi
push 0x43fabe
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x4220bb
lea eax, [ebx + 3]
mov dword [edi], eax
cmp eax, ebp
mov edx, 0
je case.0x4217b7.84
cmp byte [eax], 0x30
jne 0x421a82
add ebx, 4
mov dword [edi], ebx
mov eax, ebx
cmp eax, ebp
je case.0x4217b7.84
cmp byte [eax], 0x45
jne case.0x4217b7.84
inc eax
mov dword [edi], eax
mov ecx, edi
mov edx, str.nullptr
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
jmp 0x424d70
cmp eax, 2
jb case.0x4217b7.84
push 2
push esi
push 0x43eb3c
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x4220bb
add ebx, 3
mov dword [edi], ebx
mov ecx, edi
call fcn.0041b070
test eax, eax
je 0x4220bb
mov ecx, dword [edi]
cmp ecx, dword [edi + 4]
mov edx, 0
je case.0x4217b7.84
cmp byte [ecx], 0x45
jne case.0x4217b7.84
inc ecx
mov dword [edi], ecx
jmp 0x42189a
add ebx, 2
mov dword [edi], ebx
mov ecx, edi
mov edx, 0x43fa94
push 0x43fa94
jmp 0x4220fe
add ebx, 2
mov dword [edi], ebx
mov ecx, edi
mov edx, 0x43fa9f
push 0x43faa2
jmp 0x4220fe
add ebx, 2
mov dword [edi], ebx
mov ecx, edi
mov edx, str.unsigned_short
push 0x43fa93
jmp 0x4220fe
add ebx, 2
mov dword [edi], ebx
mov ecx, edi
mov edx, str.signed_char
push 0x43fa70
jmp 0x4220fe
add ebx, 2
mov dword [edi], ebx
mov ecx, edi
mov edx, str.unsigned_char
push 0x43fa7e
jmp 0x4220fe
cmp eax, 2
jb case.0x4217b7.84
cmp byte [ebx + 2], 0x6c
jne case.0x4217b7.84
mov ecx, edi
xor edx, edx
call fcn.00424e00
mov dword [esp + 4], eax
test eax, eax
je 0x4220bb
mov eax, dword [edi]
cmp eax, dword [edi + 4]
je 0x4220bb
cmp byte [eax], 0x45
mov edx, 0
jne case.0x4217b7.84
inc eax
mov dword [edi], eax
lea edx, [esp + 4]
mov ecx, edi
call fcn.004254f0
jmp 0x42189a
cmp eax, 3
jb case.0x4217b7.84
push 3
push esi
push 0x43fa58
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x422108
push 3
push esi
push 0x43fa5c
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
mov edx, 0
jne case.0x4217b7.84
add ebx, 4
mov dword [edi], ebx
mov dword [esp + 4], 1
jmp 0x422115
add ebx, 2
mov dword [edi], ebx
mov ecx, edi
mov edx, str.char
push 0x43fa64
jmp 0x4220fe
add ebx, 2
mov dword [edi], ebx
mov ecx, edi
mov edx, 0x43fa97
push 0x43fa98
jmp 0x4220fe
add ebx, 2
mov dword [edi], ebx
mov ecx, edi
mov edx, 0x43fa99
push 0x43fa9b
jmp 0x4220fe
lea esi, [ebx + 2]
mov dword [edi], esi
mov eax, ebp
sub eax, esi
cmp eax, 0x15
jb case.0x4217b7.84
movsx eax, byte [ebx + 2]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 3]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 4]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 5]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 6]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 7]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 8]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 9]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0xa]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0xb]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0xc]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0xd]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0xe]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0xf]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0x10]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0x11]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0x12]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0x13]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0x14]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0x15]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
lea eax, [ebx + 0x16]
mov dword [edi], eax
mov dword [esp], eax
cmp eax, ebp
je 0x4220bb
mov eax, dword [esp]
cmp byte [eax], 0x45
mov edx, 0
jne case.0x4217b7.84
add ebx, 0x17
mov dword [edi], ebx
mov ebx, dword [edi + 0x1198]
mov ecx, dword [ebx + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x421e81
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x422125
mov dword [eax], ebx
mov dword [eax + 4], 0
mov dword [edi + 0x1198], eax
xor ecx, ecx
mov ebx, eax
lea eax, [ecx + 0x20]
mov dword [ebx + 4], eax
mov byte [ebx + ecx + 0xc], 0x4c
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], 0x43fc84
jmp 0x4220ae
lea esi, [ebx + 2]
mov dword [edi], esi
mov eax, ebp
sub eax, esi
cmp eax, 0x11
jb case.0x4217b7.84
movsx eax, byte [ebx + 2]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 3]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 4]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 5]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 6]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 7]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 8]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 9]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0xa]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0xb]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0xc]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0xd]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0xe]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0xf]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0x10]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
movsx eax, byte [ebx + 0x11]
push eax
call dword [sym.imp.msvcrt.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4220bb
lea eax, [ebx + 0x12]
mov dword [edi], eax
mov dword [esp], eax
cmp eax, ebp
je 0x4220bb
mov eax, dword [esp]
cmp byte [eax], 0x45
mov edx, 0
jne case.0x4217b7.84
add ebx, 0x13
mov dword [edi], ebx
mov ebx, dword [edi + 0x1198]
mov ecx, dword [ebx + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x422083
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x422125
mov dword [eax], ebx
mov dword [eax + 4], 0
mov dword [edi + 0x1198], eax
xor ecx, ecx
mov ebx, eax
lea eax, [ecx + 0x20]
mov dword [ebx + 4], eax
mov byte [ebx + ecx + 0xc], 0x4b
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], 0x43fc14
mov dword [ebx + ecx + 0x18], esi
mov eax, dword [esp]
mov dword [ebx + ecx + 0x1c], eax
jmp case.0x4217b7.84
xor edx, edx
mov eax, edx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
add ebx, 2
mov dword [edi], ebx
mov ecx, edi
mov edx, str.unsigned___int128
push 0x43fabd
jmp 0x4220fe
add ebx, 2
mov dword [edi], ebx
mov ecx, edi
mov edx, str.__int128
push 0x43faab
jmp 0x4220fe
add ebx, 2
mov dword [edi], ebx
mov ecx, edi
mov edx, str.wchar_t
push 0x43fa57
call fcn.00424b60
add esp, 0x14
jmp 0x4220c2
add ebx, 4
mov dword [edi], ebx
mov dword [esp + 4], 0
lea edx, [esp + 4]
mov ecx, edi
call fcn.00424c70
jmp 0x42189a
call fcn.0040bf90
int3
push ebp
push ebx
push edi
push esi
sub esp, 8
mov esi, ecx
mov ebx, dword [ecx]
mov edi, dword [ecx + 4]
mov ecx, edi
sub ecx, ebx
cmp ecx, 3
jae 0x422153
xor eax, eax
cmp ecx, 2
je 0x42216b
jmp 0x42235d
push 3
push ebx
push 0x44024c
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4222dd
push 2
push ebx
push 0x440255
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x42225e
push 2
push ebx
push 0x440258
call sub.msvcrt.dll_strncmp
add esp, 0xc
mov ecx, eax
xor eax, eax
test ecx, ecx
jne 0x42235d
add ebx, 2
mov dword [esi], ebx
cmp edi, ebx
je 0x42235d
movsx ecx, byte [ebx]
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x42235d
mov edx, ebx
nop dword [eax]
movsx ecx, byte [edx]
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4221d4
inc edx
mov dword [esi], edx
cmp edx, edi
jne 0x4221c0
mov edx, edi
cmp ebx, edx
je 0x42235d
cmp edx, edi
je 0x42235d
cmp byte [edx], 0x70
jne 0x42235d
lea ecx, [edx + 1]
mov dword [esi], ecx
cmp ecx, edi
je 0x4223ed
cmp byte [ecx], 0x72
jne 0x422206
add edx, 2
mov dword [esi], edx
mov ecx, edx
cmp ecx, edi
je 0x4223ed
cmp byte [ecx], 0x56
jne 0x422216
inc ecx
mov dword [esi], ecx
cmp ecx, edi
je 0x4223ed
cmp byte [ecx], 0x4b
jne 0x422226
inc ecx
mov dword [esi], ecx
cmp edi, ecx
je 0x4223ed
movsx edx, byte [ecx]
add edx, 0xffffffd0
xor eax, eax
cmp edx, 9
ja 0x4223f4
mov edx, ecx
movsx ebx, byte [edx]
add ebx, 0xffffffd0
cmp ebx, 9
ja 0x422255
inc edx
mov dword [esi], edx
cmp edx, edi
jne 0x422241
mov edx, edi
mov ebx, ecx
mov ecx, edx
jmp 0x4223f8
lea ecx, [ebx + 2]
mov dword [esi], ecx
xor eax, eax
cmp ecx, edi
je 0x42235d
cmp byte [ecx], 0x72
jne 0x422279
add ebx, 3
mov dword [esi], ebx
mov ecx, ebx
cmp ecx, edi
je 0x42235d
cmp byte [ecx], 0x56
jne 0x422289
inc ecx
mov dword [esi], ecx
cmp ecx, edi
je 0x42235d
cmp byte [ecx], 0x4b
jne 0x422299
inc ecx
mov dword [esi], ecx
cmp edi, ecx
je 0x42235d
movsx edx, byte [ecx]
add edx, 0xffffffd0
xor eax, eax
cmp edx, 9
ja 0x422365
mov ebx, ecx
nop word cs:[eax + eax]
movsx edx, byte [ebx]
add edx, 0xffffffd0
cmp edx, 9
ja 0x4222d4
inc ebx
mov dword [esi], ebx
cmp ebx, edi
jne 0x4222c0
mov ebx, edi
mov ebp, ecx
mov ecx, ebx
jmp 0x422369
add ebx, 3
mov dword [esi], ebx
mov edi, dword [esi + 0x1198]
mov ecx, dword [edi + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x422320
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x422421
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
mov byte [edi + ecx + 0xc], 7
and byte [edi + ecx + 0x10], 0xc0
lea eax, [edi + ecx]
add eax, 8
movzx edx, byte [edi + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [edi + ecx + 0x14], dl
mov dword [edi + ecx + 8], 0x43ee04
mov dword [edi + ecx + 0x18], str.this
mov dword [edi + ecx + 0x1c], 0x440254
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
xor ebx, ebx
xor ebp, ebp
cmp ecx, edi
je 0x42235d
cmp byte [ecx], 0x5f
jne 0x42235d
inc ecx
mov dword [esi], ecx
mov edi, dword [esi + 0x1198]
mov ecx, dword [edi + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x4223b3
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x422421
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
mov byte [edi + ecx + 0xc], 0x3f
and byte [edi + ecx + 0x10], 0xc0
lea eax, [edi + ecx]
add eax, 8
movzx edx, byte [edi + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [edi + ecx + 0x14], dl
mov dword [edi + ecx + 8], 0x440264
mov dword [edi + ecx + 0x1c], ebx
mov dword [edi + ecx + 0x18], ebp
jmp 0x42235d
xor eax, eax
jmp 0x42235d
xor edx, edx
xor ebx, ebx
mov dword [esp + 4], edx
mov dword [esp], ebx
cmp ecx, edi
je 0x42235d
cmp byte [ecx], 0x5f
jne 0x42235d
inc ecx
mov dword [esi], ecx
mov edx, esp
mov ecx, esi
call fcn.00427360
jmp 0x42235d
call fcn.0040bf90
int3
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov esi, ecx
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
xor edi, edi
cmp eax, ecx
je case.0x42247e.77
cmp byte [eax], 0x66
jne case.0x42247e.77
lea edx, [eax + 1]
mov dword [esi], edx
cmp ecx, edx
je case.0x42247e.77
movsx edx, byte [edx]
xor edi, edi
add edx, 0xffffffb4
cmp edx, 0x26
ja case.0x42247e.77
mov dword [esp + 4], 0
mov dword [esp], 0
jmp dword [edx*4 + 0x441d78]
mov dl, 1
mov dword [esp + 4], edx
mov dl, 1
mov dword [esp], edx
jmp case.0x42247e.114
mov dl, 1
mov dword [esp], edx
mov dword [esp + 4], 0
jmp case.0x42247e.114
mov dl, 1
mov dword [esp + 4], edx
mov dword [esp], 0
lea edx, [eax + 2]
mov dword [esi], edx
sub ecx, edx
cmp ecx, 2
jb case.0x42247e.77
movzx ecx, byte [eax + 2]
xor edx, edx
mov edi, 0x3d
jmp 0x4224d7
inc ebp
mov edx, ebp
cmp edi, edx
je 0x422506
lea ebp, [edx + edi]
shr ebp, 1
lea ebx, [ebp*4]
cmp cl, byte [ebx + ebx*2 + 0x43f22c]
jg 0x4224d0
jne 0x422500
mov ch, byte [ebx + ebx*2 + 0x43f22d]
cmp byte [eax + 3], ch
setg ch
test ch, 1
jne 0x4224d0
mov edi, ebp
cmp edi, edx
jne 0x4224d7
lea edx, [edx + edx*2]
xor edi, edi
cmp cl, byte [edx*4 + 0x43f22c]
jne case.0x42247e.77
lea ebp, [edx*4 + 0x43f22c]
movzx ecx, byte [eax + 3]
cmp cl, byte [ebp + 1]
jne case.0x42247e.77
add eax, 4
mov dword [esi], eax
movzx eax, byte [ebp + 2]
cmp eax, 2
je 0x422562
cmp eax, 4
jne case.0x42247e.77
mov ebx, dword [ebp + 8]
push ebx
call sub.msvcrt.dll_strlen
add esp, 4
test eax, eax
je 0x4226a6
cmp byte [ebx + eax - 1], 0x2a
jne case.0x42247e.77
mov ecx, esi
call fcn.00420020
test eax, eax
je case.0x42247e.77
mov ebx, eax
cmp byte [esp], 0
je 0x42259d
mov ecx, esi
call fcn.00420020
test eax, eax
je 0x42268d
cmp byte [esp + 4], 0
mov ecx, ebx
cmovne ecx, eax
cmovne eax, ebx
mov dword [esp + 8], eax
mov ebx, ecx
jmp 0x4225a5
mov dword [esp + 8], 0
mov dword [esp], ebx
mov edi, dword [ebp + 8]
push edi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 8
jb 0x422691
mov ebp, eax
push 8
push edi
push 0x43f030
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x422691
cmp ebp, 8
mov ebx, 8
cmovb ebx, ebp
add ebx, edi
cmp ebp, 9
mov dword [esp + 0xc], ebp
jb 0x4225f7
xor eax, eax
cmp byte [ebx], 0x20
sete al
add ebx, eax
mov ebp, dword [esi + 0x1198]
mov ecx, dword [ebp + 4]
lea eax, [ecx - 0xfc8]
cmp eax, 0xfffff007
ja 0x422635
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x4226b8
mov dword [eax], ebp
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebp, eax
lea eax, [ecx + 0x30]
mov dword [ebp + 4], eax
mov byte [ebp + ecx + 0xc], 0x43
and byte [ebp + ecx + 0x10], 0xc0
add edi, dword [esp + 0xc]
movzx eax, byte [ebp + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebp + ecx + 0x14], al
mov dword [ebp + ecx + 8], 0x440334
mov eax, dword [esp]
mov dword [ebp + ecx + 0x18], eax
mov eax, dword [esp + 8]
mov dword [ebp + ecx + 0x1c], eax
mov dword [ebp + ecx + 0x24], edi
mov dword [ebp + ecx + 0x20], ebx
mov eax, dword [esp + 4]
mov byte [ebp + ecx + 0x28], al
lea edi, [ecx + ebp]
add edi, 8
mov eax, edi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
xor edi, edi
jmp case.0x42247e.77
push 0xa47
push str._home_runner_work_llvm_mingw_llvm_mingw_llvm_project_libcxxabi_src_demangle_ItaniumDemangle.h
push str.Res.startsWith__operator_____operator_name_does_not_start_with_operator_
call dword [sym.imp.msvcrt.dll__assert]
push 0x4c
push str._home_runner_work_llvm_mingw_llvm_mingw_llvm_project_libcxxabi_src_demangle_StringView.h
push str._empty__
call dword [sym.imp.msvcrt.dll__assert]
call fcn.0040bf90
int3
push ebp
push ebx
push edi
push esi
sub esp, 8
mov ebx, ecx
call fcn.0041bc20
xor ebp, ebp
test eax, eax
je 0x422ade
mov esi, eax
mov ecx, ebx
call fcn.00420020
test eax, eax
je 0x422ade
mov dword [esp + 4], eax
mov edi, dword [ebx]
mov ecx, dword [ebx + 4]
mov eax, edi
cmp edi, ecx
je 0x422a04
cmp byte [edi], 0x6e
mov eax, edi
jne 0x422a04
lea eax, [edi + 1]
mov dword [ebx], eax
cmp ecx, eax
je 0x422ade
movsx edx, byte [eax]
add edx, 0xffffffd0
xor ebp, ebp
cmp edx, 9
ja 0x422a3f
nop dword [eax]
movsx edx, byte [eax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x422a34
inc eax
mov dword [ebx], eax
cmp eax, ecx
jne 0x422a20
mov eax, ecx
mov edx, eax
cmp eax, ecx
jne 0x422a4b
jmp 0x422ade
xor edx, edx
xor edi, edi
cmp eax, ecx
je 0x422ade
cmp byte [eax], 0x45
jne 0x422ade
inc eax
mov dword [ebx], eax
mov ebp, dword [ebx + 0x1198]
mov ecx, dword [ebp + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x422a97
mov dword [esp], edx
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x422ae8
mov dword [eax], ebp
mov dword [eax + 4], 0
mov dword [ebx + 0x1198], eax
xor ecx, ecx
mov ebp, eax
mov edx, dword [esp]
lea eax, [ecx + 0x20]
mov dword [ebp + 4], eax
mov byte [ebp + ecx + 0xc], 0x41
mov eax, dword [ebp + ecx + 0x10]
and eax, 0xffffffc0
or eax, 2
mov dword [ebp + ecx + 0x10], eax
movzx eax, byte [ebp + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebp + ecx + 0x14], al
mov dword [ebp + ecx + 8], 0x44054c
mov dword [ebp + ecx + 0x18], esi
mov eax, dword [esp + 4]
mov dword [ebp + ecx + 0x1c], eax
mov dword [ebp + ecx + 0x24], edx
mov dword [ebp + ecx + 0x20], edi
add ebp, ecx
add ebp, 8
mov eax, ebp
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.0040bf90
int3
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov ebp, ecx
call fcn.0041bc20
xor edi, edi
test eax, eax
je 0x422eaf
mov dword [esp + 0x10], eax
mov ecx, ebp
call fcn.00420020
mov dword [esp + 0x1c], eax
test eax, eax
je 0x422eaf
mov edx, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, edx
cmp edx, ecx
je 0x422be8
cmp byte [edx], 0x6e
mov eax, edx
jne 0x422be8
lea eax, [edx + 1]
mov dword [ebp], eax
mov dword [esp + 4], edx
xor edi, edi
cmp ecx, eax
je 0x422c31
movsx edx, byte [eax]
add edx, 0xffffffd0
mov dword [esp], 0
cmp edx, 9
ja 0x422c3a
nop word cs:[eax + eax]
movsx edx, byte [eax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x422c25
inc eax
mov dword [ebp], eax
cmp eax, ecx
jne 0x422c10
mov eax, ecx
mov dword [esp], eax
cmp eax, ecx
jne 0x422c4a
jmp 0x422eaf
mov eax, ecx
mov dword [esp], 0
mov dword [esp + 4], 0
cmp eax, ecx
je 0x422eaf
mov edx, dword [ebp + 0xc]
sub edx, dword [ebp + 8]
sar edx, 2
mov dword [esp + 0x18], edx
lea edx, [ebp + 0x14]
mov dword [esp + 0x14], edx
mov dword [esp + 8], ebp
jmp 0x422caf
push ecx
push eax
call sub.msvcrt.dll_realloc
add esp, 8
mov dword [ebx + 8], eax
test eax, eax
je 0x422eb9
lea edx, [eax + edi]
sar edi, 1
lea ecx, [eax + edi*4]
mov dword [ebx + 0x10], ecx
mov edi, edx
lea eax, [esi + ebp]
add eax, 8
lea ecx, [edi + 4]
mov dword [ebx + 0xc], ecx
mov dword [edi], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
cmp eax, ecx
mov ebp, ebx
je 0x422dec
cmp byte [eax], 0x5f
jne 0x422dd2
inc eax
mov dword [ebp], eax
cmp ecx, eax
je 0x422d00
movsx edx, byte [eax]
add edx, 0xffffffd0
xor edi, edi
mov esi, 0
cmp edx, 9
ja 0x422d04
mov edi, eax
nop word cs:[eax + eax]
movsx edx, byte [edi]
add edx, 0xffffffd0
cmp edx, 9
ja 0x422cf5
inc edi
mov dword [ebp], edi
cmp edi, ecx
jne 0x422ce0
mov edi, ecx
mov esi, eax
jmp 0x422d04
xor edi, edi
xor esi, esi
mov dword [esp + 0xc], esi
mov ebp, dword [ebp + 0x1198]
mov esi, dword [ebp + 4]
lea eax, [esi - 0xfd8]
cmp eax, 0xfffff007
ja 0x422d50
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x422eb9
mov dword [eax], ebp
mov dword [eax + 4], 0
mov ebx, dword [esp + 8]
mov dword [ebx + 0x1198], eax
xor esi, esi
mov ebp, eax
jmp 0x422d54
mov ebx, dword [esp + 8]
lea eax, [esi + 0x20]
mov dword [ebp + 4], eax
mov byte [ebp + esi + 0xc], 7
and byte [ebp + esi + 0x10], 0xc0
movzx eax, byte [ebp + esi + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebp + esi + 0x14], al
mov dword [ebp + esi + 8], 0x43ee04
mov dword [ebp + esi + 0x1c], edi
mov eax, dword [esp + 0xc]
mov dword [ebp + esi + 0x18], eax
mov edi, dword [ebx + 0xc]
cmp edi, dword [ebx + 0x10]
jne 0x422c92
mov eax, dword [ebx + 8]
sub edi, eax
lea ecx, [edi + edi]
cmp eax, dword [esp + 0x14]
jne 0x422c70
push ecx
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x422eb9
push edi
push dword [esp + 0x18]
push eax
mov ebx, eax
call sub.msvcrt.dll_memcpy
mov eax, ebx
add esp, 0xc
mov ebx, dword [esp + 8]
mov dword [ebx + 8], eax
jmp 0x422c85
xor edi, edi
cmp eax, ecx
je 0x422df3
cmp byte [eax], 0x70
jne 0x422df3
inc eax
mov dword [ebp], eax
mov bl, 1
cmp eax, ecx
jne 0x422dfd
jmp 0x422eaf
xor edi, edi
jmp 0x422eaf
xor ebx, ebx
cmp eax, ecx
je 0x422eaf
cmp byte [eax], 0x45
jne 0x422eaf
inc eax
mov dword [ebp], eax
mov ecx, ebp
mov edx, dword [esp + 0x18]
call fcn.0041d6c0
mov dword [esp + 0xc], eax
mov edi, edx
mov esi, dword [ebp + 0x1198]
mov ecx, dword [esi + 4]
lea eax, [ecx - 0xfc8]
cmp eax, 0xfffff007
ja 0x422e55
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x422eb9
mov dword [eax], esi
mov dword [eax + 4], 0
mov dword [ebp + 0x1198], eax
xor ecx, ecx
mov esi, eax
mov edx, dword [esp + 0x10]
lea eax, [ecx + 0x30]
mov dword [esi + 4], eax
mov byte [esi + ecx + 0xc], 0x37
and byte [esi + ecx + 0x10], 0xc0
movzx eax, byte [esi + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [esi + ecx + 0x14], al
mov dword [esi + ecx + 8], 0x4405c8
mov dword [esi + ecx + 0x18], edx
mov eax, dword [esp + 0x1c]
mov dword [esi + ecx + 0x1c], eax
mov eax, dword [esp]
mov dword [esi + ecx + 0x24], eax
mov eax, dword [esp + 4]
mov dword [esi + ecx + 0x20], eax
mov dword [esi + ecx + 0x2c], edi
mov eax, dword [esp + 0xc]
mov dword [esi + ecx + 0x28], eax
mov byte [esi + ecx + 0x30], bl
lea edi, [esi + ecx]
add edi, 8
mov eax, edi
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.0040bf90
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 0x4231c2
mov edi, ecx
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x423209
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
add eax, esi
mov byte [ebx + ebp + 0xc], 7
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], 0x43ee04
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.0040bf90
int3
push ebp
push ebx
push edi
push esi
push eax
mov dword [esp], edx
mov esi, ecx
mov edi, dword [ecx]
mov ebx, dword [ecx + 4]
mov eax, ebx
sub eax, edi
cmp eax, 3
jae 0x4232af
cmp eax, 2
je 0x4232c7
jmp 0x4232df
push 3
push edi
push 0x440770
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4234c3
push 2
push edi
push 0x440774
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
je 0x42336c
mov ecx, esi
call fcn.004287f0
mov ebp, eax
test eax, eax
je 0x4237fc
cmp byte [esp], 0
je 0x4237fc
mov edi, dword [esi + 0x1198]
mov ecx, dword [edi + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x423338
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x423806
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
mov byte [edi + ecx + 0xc], 0x2a
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], 0x44093c
mov dword [edi + ecx + 0x18], ebp
lea ebp, [edi + ecx]
add ebp, 8
jmp 0x4237fc
add edi, 2
mov dword [esi], edi
cmp ebx, edi
je 0x42356a
movsx eax, byte [edi]
add eax, 0xffffffd0
cmp eax, 9
ja 0x42356a
mov ecx, esi
call fcn.00428730
test eax, eax
je 0x42376e
mov ebx, eax
cmp byte [esp], 0
je 0x42361a
xor edi, edi
jmp 0x42340a
lea eax, [ecx + 0x20]
mov dword [ebp + 4], eax
mov byte [ebp + ecx + 0xc], 0x16
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], 0x440780
mov dword [ebp + ecx + 0x18], edi
lea edi, [ecx + ebp]
add edi, 8
lea eax, [ecx + ebp]
add eax, 0x1c
mov dword [eax], ebx
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x4233f7
cmp byte [eax], 0x45
je 0x4236c8
mov ecx, esi
call fcn.00428730
mov ebx, eax
xor ebp, ebp
test eax, eax
je 0x4237fc
mov ebp, dword [esi + 0x1198]
mov ecx, dword [ebp + 4]
lea eax, [ecx - 0xfd8]
test edi, edi
je 0x423451
cmp eax, 0xfffff007
ja 0x4233b0
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x423806
mov dword [eax], ebp
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebp, eax
jmp 0x4233b0
cmp eax, 0xfffff007
ja 0x423480
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x423806
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], 0x2a
and byte [ebp + ecx + 0x10], 0xc0
lea edi, [ecx + ebp]
add edi, 8
movzx eax, byte [ebp + ecx + 0x14]
and al, 0xc0
or al, 0x15
mov byte [ebp + ecx + 0x14], al
mov dword [ebp + ecx + 8], 0x44093c
lea eax, [ecx + ebp]
add eax, 0x18
mov dword [eax], ebx
mov eax, dword [esi]
cmp eax, dword [esi + 4]
jne 0x4233ee
jmp 0x4233f7
add edi, 3
mov dword [esi], edi
mov ecx, esi
call fcn.00428600
test eax, eax
je 0x42376e
mov edi, eax
mov eax, dword [esi]
cmp dword [esi + 4], eax
je 0x4236ed
cmp byte [eax], 0x49
jne 0x4236ed
xor ebp, ebp
mov ecx, esi
xor edx, edx
call fcn.0041ead0
test eax, eax
je 0x4237fc
mov ebx, eax
mov ebp, dword [esi + 0x1198]
mov ecx, dword [ebp + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x423540
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x423806
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], 0x29
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], 0x440ea0
jmp 0x4236df
mov ecx, esi
call fcn.00428600
test eax, eax
je 0x42376e
mov edi, eax
mov eax, dword [esi]
cmp dword [esi + 4], eax
je 0x4236cb
cmp byte [eax], 0x49
jne 0x4236cb
xor ebp, ebp
mov ecx, esi
xor edx, edx
call fcn.0041ead0
test eax, eax
je 0x4237fc
mov ebx, eax
mov ebp, dword [esi + 0x1198]
mov ecx, dword [ebp + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x4235e2
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x423806
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], 0x29
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], 0x440ea0
mov dword [ebp + ecx + 0x18], edi
lea edi, [ecx + ebp]
add edi, 8
mov dword [ebp + ecx + 0x1c], ebx
jmp 0x4236cb
xor edi, edi
jmp 0x423643
mov edi, ebx
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x423630
cmp byte [eax], 0x45
je 0x4236c8
mov ecx, esi
call fcn.00428730
mov ebx, eax
xor ebp, ebp
test eax, eax
je 0x4237fc
test edi, edi
je 0x42361e
mov ebp, dword [esi + 0x1198]
mov ecx, dword [ebp + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x423685
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x423806
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], 0x16
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], 0x440780
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]
jne 0x423627
jmp 0x423630
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004287f0
test eax, eax
jne 0x423788
jmp 0x42376e
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 0x4236f9
cmp byte [eax], 0x45
je 0x423775
mov ecx, esi
call fcn.00428730
test eax, eax
je 0x42376e
mov ebx, eax
mov ebp, dword [esi + 0x1198]
mov ecx, dword [ebp + 4]
lea eax, [ecx - 0xfd8]
cmp eax, 0xfffff007
ja 0x423744
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x423806
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], 0x16
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], 0x440780
jmp 0x4236df
xor ebp, ebp
jmp 0x4237fc
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.004287f0
mov ebp, 0
test eax, eax
je 0x4237fc
mov ebx, dword [esi + 0x1198]
mov ecx, dword [ebx + 4]
lea edx, [ecx - 0xfd8]
cmp edx, 0xfffff007
ja 0x4237c7
mov ebp, eax
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x423806
mov dword [eax], ebx
mov dword [eax + 4], 0
mov dword [esi + 0x1198], eax
xor ecx, ecx
mov ebx, eax
mov eax, ebp
lea edx, [ecx + 0x20]
mov dword [ebx + 4], edx
mov byte [ebx + ecx + 0xc], 0x16
and byte [ebx + ecx + 0x10], 0xc0
lea ebp, [ebx + ecx]
add ebp, 8
movzx edx, byte [ebx + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [ebx + ecx + 0x14], dl
mov dword [ebx + ecx + 8], 0x440780
mov dword [ebx + ecx + 0x18], edi
mov dword [ebx + ecx + 0x1c], eax
mov eax, ebp
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.0040bf90
int3