Function at 0x420b80
Capabilities:
Get file version info
Query environment variable

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
push 0x4ac158
push dword [ebx + 8]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x420cf0
cmp dword [ebx + 4], 6
jae 0x420d56
mov edi, esi
mov dword [esp], ebp
push str.TERM_PROGRAM_VERSION
call sub.api_ms_win_crt_environment_l1_1_0.dll_getenv
add esp, 4
test eax, eax
je 0x420c38
mov ebp, eax
push 0x4ac1a8
call sub.api_ms_win_crt_environment_l1_1_0.dll_getenv
add esp, 4
test eax, eax
je 0x420c38
mov esi, eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
cmp dword [ebx + 4], eax
jb 0x420c05
push eax
push esi
push dword [ebx + 8]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x42110e
push str.vscode
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
jne 0x420c38
cmp dword [ebx + 4], 4
jb 0x420c38
push 4
push str.code
push dword [ebx + 8]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x42110e
push str.LC_TERMINAL_VERSION
call sub.api_ms_win_crt_environment_l1_1_0.dll_getenv
add esp, 4
test eax, eax
je 0x420d2a
mov esi, eax
push str.LC_TERMINAL
call sub.api_ms_win_crt_environment_l1_1_0.dll_getenv
add esp, 4
test eax, eax
je 0x420d2a
mov ebp, eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
cmp dword [ebx + 4], eax
jb 0x420c86
push eax
push ebp
push dword [ebx + 8]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x420cd9
push str.vscode
push ebp
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
jne 0x420cb5
cmp dword [ebx + 4], 4
jb 0x420cb5
push 4
push str.code
push dword [ebx + 8]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x420cd9
push 5
push str.iTerm
push ebp
call sub.api_ms_win_crt_string_l1_1_0.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x420d2a
mov ecx, ebx
mov edx, str.iTermServer_
call fcn.004215b0
test al, al
je 0x420d2a
mov ebx, dword [esp]
cmp dword [ebx], 0
je 0x42124b
mov eax, dword [ebx + 8]
mov byte [eax], 0
jmp 0x421253
mov eax, dword [esi + 4]
test eax, eax
mov dword [esp], ebp
je 0x420e13
mov ecx, eax
mov edi, eax
nop word cs:[eax + eax]
sub edi, 1
jb 0x420e1a
mov edx, dword [esi + 8]
cmp byte [edx + ecx - 1], 0x5c
mov ecx, edi
jne 0x420d10
jmp 0x420e1c
cmp dword [ebx + 4], 4
jb 0x420d4b
push 4
push str.tmux
push dword [ebx + 8]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x421004
mov ecx, dword [edi + 8]
mov edx, dword [esp]
jmp 0x4213ed
push 6
push 0x4ac16c
push dword [ebx + 8]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x420e91
mov eax, dword [ebx + 4]
cmp eax, 9
jb 0x420d97
push 9
push str.alacritty
push dword [ebx + 8]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x421125
mov eax, dword [ebx + 4]
cmp eax, 7
jb 0x420dba
push 7
push str.contour
push dword [ebx + 8]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x421135
mov eax, dword [ebx + 4]
cmp eax, 6
jb 0x420bb6
push 6
push str.screen
push dword [ebx + 8]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x421193
cmp dword [ebx + 4], 6
jb 0x420bb6
push 6
push str.zellij
push dword [ebx + 8]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x420bb6
mov ecx, esi
mov edx, ebp
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
jmp 0x4215e0
mov edi, 1
jmp 0x420e1d
mov edi, eax
inc edi
mov ebx, dword [0x5052b0]
mov ebp, 0x20
mov cl, 1
test edi, edi
mov dword [esp + 4], esi
je 0x420e8d
mov esi, dword [esi + 8]
test esi, esi
je 0x420e8d
lea eax, [edi + 1]
mov ecx, 0x20
nop word cs:[eax + eax]
mov ebp, ecx
add ecx, ecx
cmp eax, ebp
ja 0x420e50
push ebp
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov ebx, eax
mov byte [eax], 0
push edi
push esi
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
test ebp, ebp
je 0x420eb5
mov eax, edi
not eax
add eax, ebp
mov esi, 1
cmp eax, 0xc
ja 0x420efb
xor ecx, ecx
jmp 0x420ebc
xor edi, edi
jmp 0x420ebc
push str.ConEmuBuild
call sub.api_ms_win_crt_environment_l1_1_0.dll_getenv
add esp, 4
mov ebx, eax
cmp dword [ebp], 0
je 0x4210bd
mov eax, dword [ebp + 8]
mov byte [eax], 0
jmp 0x4210c5
mov ebp, 0x20
mov cl, 1
lea eax, [edi + 0xe]
nop
mov esi, ebp
add ebp, ebp
cmp eax, esi
ja 0x420ec0
test cl, cl
je 0x420eef
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
test edi, edi
je 0x420ff5
lea ecx, [edi + 1]
push ecx
push ebx
push eax
mov ebx, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
jmp 0x420efb
push esi
push ebx
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
mov ebx, eax
mov ebp, dword [esp]
mov dword [ebx + edi + 8], 0x6d782e6f
mov dword [ebx + edi + 4], 0x666e4964
mov dword [ebx + edi], 0x6c697542
mov word [ebx + edi + 0xc], 0x6c
mov dword [esp + 8], str.StoreVersion_
mov dword [esp + 0xc], ebp
lea eax, [esp + 8]
push eax
push 1
push ebx
call fcn.0041a090
add esp, 0xc
test al, al
mov dword [esp + 0x14], ebx
je 0x420fd8
mov eax, dword [ebp + 4]
mov bl, 1
test eax, eax
je 0x42117a
mov edi, dword [ebp + 8]
cmp byte [eax + edi - 1], 0x22
jne 0x42117a
inc eax
mov ebx, eax
add eax, 0xfffffffe
mov dword [ebp + 4], eax
cmp ebx, 2
je 0x421169
lea eax, [ebx - 1]
cmp byte [edi + ebx - 3], 0x22
je 0x420f60
cmp dword [ebp], 0
jne 0x421173
lea ecx, [eax - 1]
mov dword [esp + 4], ecx
mov dword [ebp + 4], 0
mov ecx, 0x20
nop dword [eax + eax]
mov ebp, ecx
add ecx, ecx
cmp eax, ebp
ja 0x420fa0
push ebp
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov ecx, dword [esp]
mov dword [ecx + 8], eax
mov dword [ecx], ebp
mov ebp, dword [esp + 4]
push ebp
push edi
push eax
mov edi, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esp]
mov dword [eax + 4], ebp
jmp 0x421173
mov eax, dword [esp + 4]
mov ecx, dword [eax + 8]
mov edx, ebp
call fcn.00420ac0
mov ebx, eax
test esi, esi
jne 0x421182
jmp 0x42159d
mov byte [eax], 0
xor edi, edi
mov ebp, dword [esp]
mov ebx, eax
jmp 0x420efe
mov eax, dword [edi + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x4ac2cb
mov dword [esp + 0x10], 0
lea eax, [esp + 8]
push 0
push eax
mov ebp, dword [esp + 8]
push ebp
call fcn.00474b20
add esp, 0xc
xor ebx, ebx
test eax, eax
jne 0x42159d
mov eax, dword [ebp + 4]
test eax, eax
je 0x421543
mov esi, dword [ebp + 8]
movzx ecx, byte [eax + esi - 1]
cmp cl, 0xa
jne 0x4214ad
inc eax
mov ebx, eax
add eax, 0xfffffffe
mov dword [ebp + 4], eax
cmp ebx, 2
je 0x42148b
lea eax, [ebx - 1]
cmp byte [esi + ebx - 3], 0xa
je 0x421056
cmp dword [ebp], 0
jne 0x421495
lea edi, [eax - 1]
mov dword [ebp + 4], 0
mov ecx, 0x20
mov ebp, ecx
add ecx, ecx
cmp eax, ebp
ja 0x42108a
push ebp
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov ecx, dword [esp]
mov dword [ecx + 8], eax
mov dword [ecx], ebp
mov ebp, ecx
push edi
push esi
push eax
mov esi, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [ebp + 4], edi
jmp 0x421495
mov eax, dword [0x5052b0]
mov dword [ebp + 8], eax
mov dword [ebp + 4], 0
test ebx, ebx
mov edi, ebp
je 0x4213e8
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
je 0x4213e8
mov ebp, eax
mov dword [esp], edi
mov eax, dword [edi]
mov ecx, eax
sub ecx, 1
jb 0x42120a
cmp ecx, ebp
jb 0x42120a
mov edi, dword [esp]
mov eax, dword [edi + 8]
xor ecx, ecx
jmp 0x4213c0
mov esi, dword [esp]
cmp dword [esi], 0
je 0x4212c7
mov eax, dword [esi + 8]
mov byte [eax], 0
jmp 0x4212cf
mov ecx, esi
mov edx, ebp
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
jmp 0x41f540
mov edi, esi
push str.TERMINAL_VERSION_STRING
call sub.api_ms_win_crt_environment_l1_1_0.dll_getenv
add esp, 4
test eax, eax
je 0x42134b
mov esi, eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
push esi
push eax
push ebp
call fcn.00472620
add esp, 0xc
mov bl, 1
jmp 0x42159d
cmp dword [ebp], 0
je 0x421381
mov byte [edi + ebx - 2], 0
mov bl, 1
test esi, esi
je 0x42159d
push dword [esp + 0x14]
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
add esp, 4
jmp 0x42159d
mov eax, dword [esi + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], str.__version
mov dword [esp + 0x10], 0
lea eax, [esp + 8]
push 0
push eax
push ebp
call fcn.00474b20
add esp, 0xc
test eax, eax
jne 0x42137a
push 0xa
push ebp
call fcn.00472a70
add esp, 8
push 0x20
push ebp
call fcn.00472a70
add esp, 8
push 0xe
push ebp
call fcn.00472fa0
add esp, 8
mov esi, dword [ebp + 4]
mov edi, dword [ebp + 8]
push esi
push 0x20
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memchr
add esp, 0xc
mov ecx, eax
sub ecx, edi
test eax, eax
cmove ecx, esi
push ecx
push ebp
call fcn.00472d30
jmp 0x42147f
mov dword [esp + 4], esi
cmp eax, 2
mov ecx, 0x20
cmovae ecx, eax
mov edx, ebp
inc edx
nop dword [eax]
mov esi, ecx
add ecx, ecx
cmp edx, esi
ja 0x421220
test eax, eax
je 0x4213a6
push esi
mov edi, dword [esp + 4]
push dword [edi + 8]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
mov dword [edi + 8], eax
mov ecx, dword [edi + 4]
jmp 0x4213ba
mov eax, dword [0x5052b0]
mov dword [ebx + 8], eax
mov dword [ebx + 4], 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
je 0x4212ff
mov edi, eax
mov eax, dword [ebx]
mov ecx, eax
sub ecx, 1
jb 0x421284
cmp ecx, edi
jb 0x421284
mov eax, dword [ebx + 8]
xor ecx, ecx
jmp 0x42140e
mov ebp, esi
cmp eax, 2
mov ecx, 0x20
cmovae ecx, eax
mov edx, edi
inc edx
nop word cs:[eax + eax]
mov esi, ecx
add ecx, ecx
cmp edx, esi
ja 0x4212a0
test eax, eax
je 0x4213f9
push esi
push dword [ebx + 8]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
mov dword [ebx + 8], eax
mov ecx, dword [ebx + 4]
jmp 0x42140a
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
mov dword [esi + 4], 0
push ebp
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
je 0x4212ff
mov ebx, eax
mov eax, dword [esi]
mov ecx, eax
sub ecx, 1
jb 0x421306
cmp ecx, ebx
jb 0x421306
mov edi, dword [esp]
mov eax, dword [edi + 8]
xor ecx, ecx
jmp 0x42143e
mov bl, 1
jmp 0x42159d
cmp eax, 2
mov ecx, 0x20
cmovae ecx, eax
mov edx, ebx
inc edx
nop word cs:[eax + eax]
mov esi, ecx
add ecx, ecx
cmp edx, esi
ja 0x421320
test eax, eax
je 0x421428
push esi
mov edi, dword [esp + 4]
push dword [edi + 8]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
mov dword [edi + 8], eax
mov ecx, dword [edi + 4]
jmp 0x42143c
mov eax, dword [edi + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], str.__version
mov dword [esp + 0x10], 0
lea eax, [esp + 8]
push 0
push eax
push ebp
call fcn.00474b20
add esp, 0xc
test eax, eax
je 0x421461
xor ebx, ebx
jmp 0x42159d
mov dword [ebp], 0
mov dword [ebp + 4], 0
mov eax, dword [0x5052b0]
mov dword [ebp + 8], eax
mov bl, 1
test esi, esi
jne 0x421182
jmp 0x42159d
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov edi, dword [esp]
mov dword [edi + 8], eax
xor ecx, ecx
mov dword [edi], esi
mov esi, dword [esp + 4]
add ecx, eax
push ebp
push ebx
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 4]
add eax, ebp
mov dword [edi + 4], eax
mov ecx, dword [edi + 8]
mov byte [ecx + eax], 0
mov bl, 1
cmp dword [edi + 4], 0
jne 0x42159d
mov ecx, dword [esi + 8]
mov edx, edi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.00420ac0
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [ebx + 8], eax
xor ecx, ecx
mov dword [ebx], esi
mov esi, ebp
add ecx, eax
push edi
push esi
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 4]
add eax, edi
mov dword [ebx + 4], eax
mov ecx, dword [ebx + 8]
jmp 0x421456
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov edi, dword [esp]
mov dword [edi + 8], eax
xor ecx, ecx
mov dword [edi], esi
add ecx, eax
push ebx
push ebp
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 4]
add eax, ebx
mov dword [edi + 4], eax
mov ecx, dword [edi + 8]
mov byte [ecx + eax], 0
mov bl, 1
jmp 0x42159d
push 0xa
push ebp
call fcn.00472a70
add esp, 8
push 0x20
push ebp
call fcn.00472a70
add esp, 8
push 0x20
push ebp
call fcn.00473010
add esp, 8
cmp dword [ebp + 4], 0
jmp 0x42159a
cmp dword [ebp], 0
je 0x42152b
mov byte [esi + ebx - 2], 0
mov eax, dword [ebp + 4]
test eax, eax
je 0x421541
mov esi, dword [ebp + 8]
movzx ecx, byte [eax + esi - 1]
cmp cl, 0x20
jne 0x421517
inc eax
mov ebx, eax
add eax, 0xfffffffe
mov dword [ebp + 4], eax
cmp ebx, 2
je 0x42151b
lea eax, [ebx - 1]
cmp byte [esi + ebx - 3], 0x20
je 0x4214b3
cmp dword [ebp], 0
jne 0x421521
lea ecx, [eax - 1]
mov dword [esp + 0x14], ecx
mov dword [ebp + 4], 0
mov ecx, 0x20
mov ebp, ecx
add ecx, ecx
cmp eax, ebp
ja 0x4214e3
push ebp
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov edi, dword [esp]
mov dword [edi + 8], eax
mov dword [edi], ebp
mov ebp, edi
mov edi, dword [esp + 0x14]
push edi
push esi
push eax
mov esi, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [ebp + 4], edi
jmp 0x421521
mov ebx, eax
jmp 0x421543
cmp dword [ebp], 0
je 0x42152b
mov byte [esi + ebx - 2], 0
mov ebx, dword [ebp + 4]
jmp 0x421543
mov dword [ebp], 0
mov dword [ebp + 4], 0
mov eax, dword [0x5052b0]
mov dword [ebp + 8], eax
xor ebx, ebx
mov esi, dword [ebp + 8]
push ebx
push 0x20
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memchr
add esp, 0xc
mov edi, eax
sub edi, esi
test eax, eax
cmove edi, ebx
mov eax, ebx
sub eax, edi
jbe 0x42158c
cmp dword [ebp], 0
je 0x421590
lea eax, [esi + edi]
inc eax
not edi
add ebx, edi
push ebx
push eax
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
add edi, dword [ebp + 4]
mov dword [ebp + 4], edi
mov eax, dword [ebp + 8]
mov byte [eax + edi], 0
mov eax, dword [ebp + 4]
jmp 0x421598
mov eax, ebx
jmp 0x421598
mov dword [ebp + 4], eax
add esi, edi
mov dword [ebp + 8], esi
test eax, eax
setne bl
mov eax, ebx
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov esi, edx
mov eax, dword [ecx + 8]
mov dword [esp + 4], eax
mov dword [esp + 8], str.__version
mov dword [esp + 0xc], 0
lea eax, [esp + 4]
push 0
push eax
push edx
call fcn.00474b20
add esp, 0xc
test eax, eax
je 0x42161b
xor eax, eax
jmp 0x4217af
mov eax, dword [esi + 4]
xor ebx, ebx
test eax, eax
je 0x421756
mov ebp, dword [esi + 8]
cmp byte [eax + ebp - 1], 0xa
jne 0x4216b9
inc eax
nop word [eax + eax]
mov edi, eax
add eax, 0xfffffffe
mov dword [esi + 4], eax
cmp edi, 2
je 0x4216a0
lea eax, [edi - 1]
cmp byte [ebp + edi - 3], 0xa
je 0x421640
cmp dword [esi], 0
jne 0x4216a9
lea ecx, [eax - 1]
mov dword [esp], ecx
mov dword [esi + 4], 0
mov ecx, 0x20
nop
mov ebx, ecx
add ecx, ecx
cmp eax, ebx
ja 0x421670
push ebx
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], ebx
mov ebx, dword [esp]
push ebx
push ebp
push eax
mov ebp, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], ebx
xor ebx, ebx
jmp 0x4216a9
cmp dword [esi], 0
je 0x421741
mov byte [ebp + edi - 2], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x421756
mov ebp, dword [esi + 8]
cmp byte [eax + ebp - 1], 0x20
jne 0x42172e
inc eax
nop word cs:[eax + eax]
mov edi, eax
add eax, 0xfffffffe
mov dword [esi + 4], eax
cmp edi, 2
je 0x421732
lea eax, [edi - 1]
cmp byte [ebp + edi - 3], 0x20
je 0x4216d0
cmp dword [esi], 0
jne 0x421737
lea ecx, [eax - 1]
mov dword [esp], ecx
mov dword [esi + 4], 0
mov ecx, 0x20
nop
mov ebx, ecx
add ecx, ecx
cmp eax, ebx
ja 0x421700
push ebx
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], ebx
mov ebx, dword [esp]
push ebx
push ebp
push eax
mov ebp, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], ebx
jmp 0x421737
mov ebx, eax
jmp 0x421756
cmp dword [esi], 0
je 0x421741
mov byte [ebp + edi - 2], 0
mov ebx, dword [esi + 4]
jmp 0x421756
mov dword [esi], 0
mov dword [esi + 4], 0
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
mov edi, dword [esi + 8]
push ebx
push 0x20
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memchr
add esp, 0xc
mov ebp, eax
sub ebp, edi
test eax, eax
cmove ebp, ebx
mov eax, ebx
sub eax, ebp
jbe 0x42179e
cmp dword [esi], 0
je 0x4217a2
lea eax, [edi + ebp]
inc eax
not ebp
add ebx, ebp
push ebx
push eax
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
add ebp, dword [esi + 4]
mov dword [esi + 4], ebp
mov eax, dword [esi + 8]
mov byte [eax + ebp], 0
mov eax, dword [esi + 4]
jmp 0x4217aa
mov eax, ebx
jmp 0x4217aa
mov dword [esi + 4], eax
add edi, ebp
mov dword [esi + 8], edi
test eax, eax
setne al
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret