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

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x5c
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x18], ecx
call sym.zsh.exe_mb_charinit
mov esi, dword [sym.zsh.exe_ifs]
test esi, esi
je 0x46a960
cmp byte [esi], 0
mov dword [esp + 0x10], 0x4f8fb8
jne 0x46a965
mov edx, dword [esp + 0x70]
test edx, edx
je 0x46a7a5
mov eax, dword [esp + 0x70]
cmp byte [eax], 0
mov eax, dword [esp + 0x10]
cmovne eax, dword [esp + 0x70]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x74]
test eax, eax
je 0x46a7c1
mov eax, dword [esp + 0x74]
cmp byte [eax], 0
mov eax, dword [esp + 0x10]
cmovne eax, dword [esp + 0x74]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x78]
test eax, eax
je 0x46aa50
mov eax, dword [esp + 0x78]
cmp byte [eax], 0
mov eax, dword [esp + 0x10]
cmovne eax, dword [esp + 0x78]
mov dword [esp + 0x78], eax
test edi, edi
je 0x46a7f1
cmp byte [edi], 0
cmove edi, dword [esp + 0x10]
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x80]
mov dword [esp + 8], 0
xor edi, edi
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metastrlenend
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x70]
test eax, eax
je 0x46a83b
mov eax, dword [esp + 0x80]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call sym.zsh.exe_mb_metastrlenend
mov edi, eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x24], 0
test eax, eax
je 0x46a86e
mov eax, dword [esp + 0x80]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call sym.zsh.exe_mb_metastrlenend
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call sym.zsh.exe_mb_metastrlenend
mov esi, dword [esp + 0x10]
mov dword [esp + 8], 0
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x80]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metastrlenend
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x20]
je 0x46a94f
mov dword [esp], ebx
call sub.cygwin1.dll_strlen
mov dword [esp], esi
mov ebp, eax
call sub.cygwin1.dll_strlen
mov ecx, dword [esp + 0x78]
mov esi, eax
mov dword [esp], ecx
call sub.cygwin1.dll_strlen
imul esi, dword [esp + 0x18]
imul eax, dword [esp + 0x14]
add esi, eax
mov eax, dword [esp + 0x70]
add esi, ebp
test eax, eax
je 0x46a90e
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call sub.cygwin1.dll_strlen
add esi, eax
mov ebp, dword [esp + 0x74]
test ebp, ebp
je 0x46a924
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call sub.cygwin1.dll_strlen
add esi, eax
add esi, 1
mov dword [esp], esi
call sym.zsh.exe_zhalloc
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
test ecx, ecx
jne 0x46a990
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
test edi, edi
jne 0x46acc9
mov byte [ebp], 0
mov eax, dword [esp + 0x1c]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, 0x4f8fb2
mov dword [esp + 4], 0
mov dword [esp], esi
call sym.zsh.exe_mb_metacharlenconv
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.zsh.exe_dupstrpfx
mov dword [esp + 0x10], eax
jmp 0x46a789
mov esi, dword [esp + 0x18]
test esi, esi
je 0x46aa5d
mov edx, dword [esp + 0x20]
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
sub ecx, eax
mov dword [esp + 0x34], eax
mov esi, ecx
test ecx, ecx
jle 0x46b230
mov ebp, dword [esp + 0x1c]
cmp edi, ecx
jl 0x46ab15
mov eax, dword [esp + 0x70]
test eax, eax
je 0x46ab50
call sym.zsh.exe_mb_charinit
sub edi, esi
test edi, edi
jle 0x46b66d
mov dword [esp + 0x14], ebx
mov esi, dword [esp + 0x80]
lea ebp, [esp + 0x4c]
mov ebx, dword [esp + 0x70]
jmp 0x46aa0b
call sub.cygwin1.dll_wcwidth
xor edx, edx
test eax, eax
cmovs eax, edx
sub edi, eax
test edi, edi
jle 0x46b665
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46b665
add ebx, eax
movzx edx, word [esp + 0x4c]
mov eax, 1
test esi, esi
je 0x46aa01
mov dword [esp], edx
cmp esi, 1
je 0x46a9f5
call sub.cygwin1.dll_wcwidth
test eax, eax
setg al
movzx eax, al
jmp 0x46aa01
mov eax, dword [esp + 0x10]
mov dword [esp + 0x78], eax
jmp 0x46a7e1
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x20]
test eax, eax
jle 0x46b0a6
mov ebp, dword [esp + 0x1c]
cmp edi, eax
jl 0x46aee2
mov edx, dword [esp + 0x70]
test edx, edx
je 0x46ab09
sub edi, eax
call sym.zsh.exe_mb_charinit
test edi, edi
jle 0x46b637
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x80]
lea ebp, [esp + 0x4c]
mov ebx, dword [esp + 0x70]
jmp 0x46aabf
call sub.cygwin1.dll_wcwidth
xor edx, edx
test eax, eax
cmovs eax, edx
sub edi, eax
test edi, edi
jle 0x46b62f
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46b62f
add ebx, eax
movzx edx, word [esp + 0x4c]
mov eax, 1
test esi, esi
je 0x46aab5
mov dword [esp], edx
cmp esi, 1
je 0x46aaa9
call sub.cygwin1.dll_wcwidth
test eax, eax
setg al
movzx eax, al
jmp 0x46aab5
mov byte [ebp], al
add ebp, 1
add ebx, 1
movzx eax, byte [ebx]
test al, al
jne 0x46ab00
jmp 0x46a94b
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x46b3af
mov eax, dword [esp + 0x70]
test eax, eax
je 0x46ab50
mov eax, dword [esp + 0x70]
movzx eax, byte [eax]
test al, al
je 0x46ab50
mov edx, dword [esp + 0x70]
lea esi, [esi]
nop
add edx, 1
mov byte [ebp], al
add ebp, 1
movzx eax, byte [edx]
test al, al
jne 0x46ab40
lea eax, [esp + 0x4c]
cmp dword [esp + 0x20], 1
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x14], eax
jle 0x46abdd
mov esi, ebx
mov ebx, ecx
lea esi, [esi]
nop
mov eax, dword [esp + 0x14]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
mov edx, eax
test eax, eax
je 0x46abdb
mov edi, dword [esp + 0x80]
movzx ecx, word [esp + 0x4c]
mov eax, 1
test edi, edi
je 0x46abc0
cmp dword [esp + 0x80], 1
mov dword [esp + 0x28], edx
mov dword [esp], ecx
jne 0x46aca0
call sub.cygwin1.dll_wcwidth
xor ecx, ecx
mov edx, dword [esp + 0x28]
test eax, eax
cmovs eax, ecx
sub ebx, eax
lea eax, [esi + edx]
mov edi, ebp
lea esi, [esi]
nop
movsb byte es:[edi], byte [esi]
cmp eax, esi
jne 0x46abd0
add ebp, edx
test ebx, ebx
jg 0x46ab70
mov ebx, esi
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x34]
sub ecx, eax
test ecx, ecx
jg 0x46ac01
jmp 0x46b19f
mov byte [ebp], al
add ebp, 1
add ebx, 1
movzx eax, byte [ebx]
test al, al
jne 0x46abf8
cmp dword [esp + 0x24], ecx
jl 0x46adcc
mov eax, dword [esp + 0x74]
test eax, eax
je 0x46a94b
lea eax, [esp + 0x4c]
mov esi, dword [esp + 0x74]
mov ebx, ecx
mov dword [esp + 0x14], eax
lea esi, [esi]
mov eax, dword [esp + 0x14]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
mov edx, eax
test eax, eax
je 0x46a94b
mov edi, dword [esp + 0x80]
movzx ecx, word [esp + 0x4c]
mov eax, 1
test edi, edi
je 0x46ac80
cmp dword [esp + 0x80], 1
mov dword [esp + 0x10], edx
mov dword [esp], ecx
jne 0x46acb6
call sub.cygwin1.dll_wcwidth
xor ecx, ecx
mov edx, dword [esp + 0x10]
test eax, eax
cmovs eax, ecx
sub ebx, eax
lea eax, [esi + edx]
mov edi, ebp
lea esi, [esi]
nop
movsb byte es:[edi], byte [esi]
cmp esi, eax
jne 0x46ac90
add ebp, edx
test ebx, ebx
jg 0x46ac30
jmp 0x46a94b
call sub.cygwin1.dll_wcwidth
mov edx, dword [esp + 0x28]
test eax, eax
setg al
movzx eax, al
jmp 0x46abc0
call sub.cygwin1.dll_wcwidth
mov edx, dword [esp + 0x10]
test eax, eax
setg al
movzx eax, al
jmp 0x46ac80
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x20]
mov edi, eax
mov dword [esp + 0x20], eax
call sym.zsh.exe_mb_charinit
test edi, edi
jle 0x46b009
lea eax, [esp + 0x4c]
mov dword [esp + 0x14], eax
cmp byte [ebx], 0
je 0x46ad3c
lea esi, [esi]
mov eax, dword [esp + 0x14]
mov dword [esp], ebx
mov esi, ebx
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46ad3c
lea ebx, [ebx + eax]
mov edi, ebp
lea esi, [esi]
nop
movsb byte es:[edi], byte [esi]
cmp ebx, esi
jne 0x46ad18
add ebp, eax
mov eax, dword [esp + 0x80]
test eax, eax
je 0x46ad37
movzx eax, word [esp + 0x4c]
mov dword [esp], eax
call sub.cygwin1.dll_wcwidth
cmp byte [ebx], 0
jne 0x46acf8
call sym.zsh.exe_mb_charinit
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x24], ebx
jge 0x46b327
mov eax, dword [esp + 0x74]
test eax, eax
je 0x46b516
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x24]
sub dword [esp + 0x20], ecx
cmp byte [eax], 0
je 0x46b516
lea eax, [esp + 0x4c]
mov esi, dword [esp + 0x74]
mov dword [esp + 0x14], eax
lea esi, [esi]
mov eax, dword [esp + 0x14]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46b516
lea ebx, [esi + eax]
mov edi, ebp
lea esi, [esi]
movsb byte es:[edi], byte [esi]
cmp ebx, esi
jne 0x46ada0
add ebp, eax
mov eax, dword [esp + 0x80]
test eax, eax
je 0x46adbf
movzx eax, word [esp + 0x4c]
mov dword [esp], eax
call sub.cygwin1.dll_wcwidth
cmp byte [ebx], 0
je 0x46b516
mov esi, ebx
jmp 0x46ad80
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x46ae00
mov eax, dword [esp + 0x74]
sub ecx, dword [esp + 0x24]
movzx eax, byte [eax]
test al, al
je 0x46ae00
mov edx, dword [esp + 0x74]
lea esi, [esi]
nop
add edx, 1
mov byte [ebp], al
add ebp, 1
movzx eax, byte [edx]
test al, al
jne 0x46adf0
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x46a94b
mov eax, ecx
cdq
idiv ebx
mov ebx, dword [esp + 0x10]
lea esi, [eax - 1]
test eax, eax
je 0x46ae45
lea esi, [esi]
movzx eax, byte [ebx]
mov ecx, ebx
test al, al
je 0x46ae40
lea esi, [esi]
add ecx, 1
mov byte [ebp], al
add ebp, 1
movzx eax, byte [ecx]
test al, al
jne 0x46ae30
sub esi, 1
jae 0x46ae20
mov ebx, edx
test edx, edx
je 0x46a94b
call sym.zsh.exe_mb_charinit
test ebx, ebx
jle 0x46a94b
lea eax, [esp + 0x4c]
mov esi, dword [esp + 0x10]
mov ecx, ebp
mov ebp, ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [esp], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
mov ecx, dword [esp + 0x10]
test eax, eax
mov ebx, eax
je 0x46aedb
mov edx, dword [esp + 0x80]
movzx edi, word [esp + 0x4c]
mov eax, 1
test edx, edx
je 0x46aec0
cmp dword [esp + 0x80], 1
jne 0x46b69d
mov dword [esp], edi
xor edi, edi
call sub.cygwin1.dll_wcwidth
mov ecx, dword [esp + 0x10]
test eax, eax
cmovs eax, edi
sub ebp, eax
lea eax, [esi + ebx]
mov edi, ecx
lea esi, [esi]
nop
movsb byte es:[edi], byte [esi]
cmp esi, eax
jne 0x46aed0
add ecx, ebx
test ebp, ebp
jg 0x46ae6c
mov ebp, ecx
jmp 0x46a94b
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x46afbf
sub eax, edi
cdq
idiv ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x46b6de
mov eax, dword [esp + 0x20]
test eax, eax
je 0x46afbf
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ebx
lea esi, [esi]
nop
call sym.zsh.exe_mb_charinit
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x46afb0
mov ebx, eax
lea eax, [esp + 0x4c]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x10], eax
nop
mov eax, dword [esp + 0x10]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46afb0
lea edx, [esi + eax]
mov edi, ebp
lea esi, [esi]
movsb byte es:[edi], byte [esi]
cmp edx, esi
jne 0x46af60
mov esi, dword [esp + 0x80]
add ebp, eax
movzx ecx, word [esp + 0x4c]
mov eax, 1
test esi, esi
je 0x46afa1
cmp dword [esp + 0x80], 1
mov dword [esp + 0x14], edx
mov dword [esp], ecx
jne 0x46b4a8
call sub.cygwin1.dll_wcwidth
xor ecx, ecx
mov edx, dword [esp + 0x14]
test eax, eax
cmovs eax, ecx
sub ebx, eax
test ebx, ebx
jle 0x46afb0
mov esi, edx
jmp 0x46af40
sub dword [esp + 0x18], 1
jne 0x46af20
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x70]
test eax, eax
je 0x46ab09
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x70]
movzx eax, byte [eax]
test al, al
je 0x46ab09
nop
add edx, 1
mov byte [ebp], al
add ebp, 1
movzx eax, byte [edx]
test al, al
je 0x46ab09
add edx, 1
mov byte [ebp], al
add ebp, 1
movzx eax, byte [edx]
test al, al
jne 0x46afe0
jmp 0x46ab09
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x46a94b
lea ecx, [esp + 0x4c]
mov esi, ebx
mov ebx, eax
mov dword [esp + 0x14], ecx
lea esi, [esi]
mov eax, dword [esp + 0x14]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46a94b
lea edx, [esi + eax]
mov edi, ebp
lea esi, [esi]
movsb byte es:[edi], byte [esi]
cmp edx, esi
jne 0x46b048
mov esi, dword [esp + 0x80]
add ebp, eax
movzx ecx, word [esp + 0x4c]
mov eax, 1
test esi, esi
je 0x46b085
cmp dword [esp + 0x80], 1
mov dword [esp + 0x10], edx
mov dword [esp], ecx
jne 0x46b093
call sub.cygwin1.dll_wcwidth
xor ecx, ecx
mov edx, dword [esp + 0x10]
test eax, eax
cmovs eax, ecx
sub ebx, eax
test ebx, ebx
jle 0x46a94b
mov esi, edx
jmp 0x46b028
call sub.cygwin1.dll_wcwidth
mov edx, dword [esp + 0x10]
test eax, eax
setg al
movzx eax, al
jmp 0x46b085
mov esi, dword [esp + 0x20]
sub esi, dword [esp + 0x14]
call sym.zsh.exe_mb_charinit
test esi, esi
jle 0x46b10d
mov edi, dword [esp + 0x80]
lea ebp, [esp + 0x4c]
jmp 0x46b0d6
call sub.cygwin1.dll_wcwidth
xor edx, edx
test eax, eax
cmovs eax, edx
sub esi, eax
test esi, esi
jle 0x46b10d
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46b10d
add ebx, eax
movzx edx, word [esp + 0x4c]
mov eax, 1
test edi, edi
je 0x46b0d0
mov dword [esp], edx
cmp edi, 1
je 0x46b0c4
call sub.cygwin1.dll_wcwidth
test eax, eax
setg al
movzx eax, al
jmp 0x46b0d0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
test eax, eax
jle 0x46a94b
lea ecx, [esp + 0x4c]
mov esi, ebx
mov ebx, eax
mov dword [esp + 0x14], ecx
lea esi, [esi]
mov eax, dword [esp + 0x14]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46a94b
lea edx, [esi + eax]
mov edi, ebp
lea esi, [esi]
movsb byte es:[edi], byte [esi]
cmp edx, esi
jne 0x46b150
mov esi, dword [esp + 0x80]
add ebp, eax
movzx ecx, word [esp + 0x4c]
mov eax, 1
test esi, esi
je 0x46b191
cmp dword [esp + 0x80], 1
mov dword [esp + 0x10], edx
mov dword [esp], ecx
jne 0x46b4d4
call sub.cygwin1.dll_wcwidth
xor ecx, ecx
mov edx, dword [esp + 0x10]
test eax, eax
cmovs eax, ecx
sub ebx, eax
test ebx, ebx
jle 0x46a94b
mov esi, edx
jmp 0x46b130
call sym.zsh.exe_mb_charinit
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x46a94b
lea ecx, [esp + 0x4c]
mov esi, ebx
mov ebx, eax
mov dword [esp + 0x14], ecx
lea esi, [esi]
mov eax, dword [esp + 0x14]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
mov edx, eax
test eax, eax
je 0x46a94b
mov edi, dword [esp + 0x80]
movzx ecx, word [esp + 0x4c]
mov eax, 1
test edi, edi
je 0x46b214
cmp dword [esp + 0x80], 1
mov dword [esp + 0x10], edx
mov dword [esp], ecx
jne 0x46b4be
call sub.cygwin1.dll_wcwidth
xor ecx, ecx
mov edx, dword [esp + 0x10]
test eax, eax
cmovs eax, ecx
sub ebx, eax
lea eax, [esi + edx]
mov edi, ebp
lea esi, [esi]
nop
movsb byte es:[edi], byte [esi]
cmp esi, eax
jne 0x46b220
add ebp, edx
test ebx, ebx
jg 0x46b1c0
jmp 0x46a94b
mov esi, eax
sub esi, dword [esp + 0x14]
call sym.zsh.exe_mb_charinit
test esi, esi
jle 0x46b295
mov edi, dword [esp + 0x80]
lea ebp, [esp + 0x4c]
jmp 0x46b25e
call sub.cygwin1.dll_wcwidth
xor edx, edx
test eax, eax
cmovs eax, edx
sub esi, eax
test esi, esi
jle 0x46b295
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46b295
add ebx, eax
movzx edx, word [esp + 0x4c]
mov eax, 1
test edi, edi
je 0x46b258
mov dword [esp], edx
cmp edi, 1
je 0x46b24c
call sub.cygwin1.dll_wcwidth
test eax, eax
setg al
movzx eax, al
jmp 0x46b258
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
test eax, eax
jle 0x46abdd
lea ecx, [esp + 0x4c]
mov edi, ebp
mov ebp, eax
mov dword [esp + 0x14], ecx
lea esi, [esi]
mov eax, dword [esp + 0x14]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46b6ba
lea ecx, [edi + eax]
mov esi, ebx
lea esi, [esi]
movsb byte es:[edi], byte [esi]
cmp ecx, edi
jne 0x46b2d8
mov edx, dword [esp + 0x80]
add ebx, eax
movzx esi, word [esp + 0x4c]
mov eax, 1
test edx, edx
je 0x46b319
cmp dword [esp + 0x80], 1
mov dword [esp + 0x28], ecx
mov dword [esp], esi
jne 0x46b4ea
call sub.cygwin1.dll_wcwidth
xor esi, esi
mov ecx, dword [esp + 0x28]
test eax, eax
cmovs eax, esi
sub ebp, eax
test ebp, ebp
jle 0x46b6c1
mov edi, ecx
jmp 0x46b2b8
mov edi, dword [esp + 0x74]
test edi, edi
je 0x46a94b
lea eax, [esp + 0x4c]
mov esi, dword [esp + 0x74]
mov dword [esp + 0x14], eax
nop
mov eax, dword [esp + 0x14]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46a94b
lea edx, [esi + eax]
mov edi, ebp
lea esi, [esi]
movsb byte es:[edi], byte [esi]
cmp edx, esi
jne 0x46b360
mov esi, dword [esp + 0x80]
add ebp, eax
movzx ecx, word [esp + 0x4c]
mov eax, 1
test esi, esi
je 0x46b3a1
cmp dword [esp + 0x80], 1
mov dword [esp + 0x10], edx
mov dword [esp], ecx
jne 0x46b500
call sub.cygwin1.dll_wcwidth
xor ecx, ecx
mov edx, dword [esp + 0x10]
test eax, eax
cmovs eax, ecx
sub ebx, eax
test ebx, ebx
jle 0x46a94b
mov esi, edx
jmp 0x46b340
sub esi, edi
mov eax, esi
cdq
idiv ecx
mov dword [esp + 0x2c], eax
mov esi, edx
test edx, edx
jne 0x46b75f
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x46ab21
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ebx
lea esi, [esi]
nop
call sym.zsh.exe_mb_charinit
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x46b490
mov ebx, eax
lea eax, [esp + 0x4c]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x14], eax
nop
mov eax, dword [esp + 0x14]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46b490
lea edx, [esi + eax]
mov edi, ebp
lea esi, [esi]
movsb byte es:[edi], byte [esi]
cmp edx, esi
jne 0x46b420
mov esi, dword [esp + 0x80]
add ebp, eax
movzx ecx, word [esp + 0x4c]
mov eax, 1
test esi, esi
je 0x46b45d
cmp dword [esp + 0x80], 1
mov dword [esp + 0x2c], edx
mov dword [esp], ecx
jne 0x46b470
call sub.cygwin1.dll_wcwidth
xor ecx, ecx
mov edx, dword [esp + 0x2c]
test eax, eax
cmovs eax, ecx
sub ebx, eax
test ebx, ebx
jle 0x46b490
mov esi, edx
jmp 0x46b400
call sub.cygwin1.dll_wcwidth
mov edx, dword [esp + 0x2c]
test eax, eax
setg al
movzx eax, al
sub ebx, eax
test ebx, ebx
jg 0x46b463
lea esi, [esi]
nop
sub dword [esp + 0x38], 1
jne 0x46b3e0
mov ebx, dword [esp + 0x3c]
jmp 0x46ab21
call sub.cygwin1.dll_wcwidth
mov edx, dword [esp + 0x14]
test eax, eax
setg al
movzx eax, al
jmp 0x46afa1
call sub.cygwin1.dll_wcwidth
mov edx, dword [esp + 0x10]
test eax, eax
setg al
movzx eax, al
jmp 0x46b214
call sub.cygwin1.dll_wcwidth
mov edx, dword [esp + 0x10]
test eax, eax
setg al
movzx eax, al
jmp 0x46b191
call sub.cygwin1.dll_wcwidth
mov ecx, dword [esp + 0x28]
test eax, eax
setg al
movzx eax, al
jmp 0x46b319
call sub.cygwin1.dll_wcwidth
mov edx, dword [esp + 0x10]
test eax, eax
setg al
movzx eax, al
jmp 0x46b3a1
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x46a94b
mov eax, dword [esp + 0x20]
cdq
idiv ecx
mov dword [esp + 0x18], edx
test eax, eax
je 0x46b597
mov dword [esp + 0x14], eax
call sym.zsh.exe_mb_charinit
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
je 0x46b590
mov esi, eax
lea esi, [esi]
lea eax, [esp + 0x4c]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46b590
lea ebx, [esi + eax]
mov edi, ebp
lea esi, [esi]
movsb byte es:[edi], byte [esi]
cmp esi, ebx
jne 0x46b568
mov edi, dword [esp + 0x80]
add ebp, eax
test edi, edi
je 0x46b587
movzx eax, word [esp + 0x4c]
mov dword [esp], eax
call sub.cygwin1.dll_wcwidth
cmp byte [ebx], 0
je 0x46b590
mov esi, ebx
jmp 0x46b548
sub dword [esp + 0x14], 1
jne 0x46b535
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x46a94b
call sym.zsh.exe_mb_charinit
test ebx, ebx
jle 0x46a94b
lea eax, [esp + 0x4c]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46a94b
lea edx, [esi + eax]
mov edi, ebp
lea esi, [esi]
movsb byte es:[edi], byte [esi]
cmp edx, esi
jne 0x46b5e0
mov esi, dword [esp + 0x80]
add ebp, eax
movzx ecx, word [esp + 0x4c]
mov eax, 1
test esi, esi
je 0x46b621
cmp dword [esp + 0x80], 1
mov dword [esp + 0x10], edx
mov dword [esp], ecx
jne 0x46b6c8
call sub.cygwin1.dll_wcwidth
xor ecx, ecx
mov edx, dword [esp + 0x10]
test eax, eax
cmovs eax, ecx
sub ebx, eax
test ebx, ebx
jle 0x46a94b
mov esi, edx
jmp 0x46b5bc
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x70]
movzx eax, byte [eax]
test al, al
je 0x46ab09
nop
add edx, 1
mov byte [ebp], al
add ebp, 1
movzx eax, byte [edx]
test al, al
jne 0x46b650
jmp 0x46ab09
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x70]
movzx eax, byte [eax]
test al, al
je 0x46ab50
lea esi, [esi]
add edx, 1
mov byte [ebp], al
add ebp, 1
movzx eax, byte [edx]
test al, al
jne 0x46b688
jmp 0x46ab50
mov dword [esp], edi
mov dword [esp + 0x10], ecx
call sub.cygwin1.dll_wcwidth
mov ecx, dword [esp + 0x10]
test eax, eax
setg al
movzx eax, al
jmp 0x46aec0
mov ebp, edi
jmp 0x46abdd
mov ebp, ecx
jmp 0x46abdd
call sub.cygwin1.dll_wcwidth
mov edx, dword [esp + 0x10]
test eax, eax
setg al
movzx eax, al
jmp 0x46b621
mov edi, ecx
sub edi, edx
call sym.zsh.exe_mb_charinit
mov esi, dword [esp + 0x78]
test edi, edi
jle 0x46b806
lea eax, [esp + 0x4c]
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x14], eax
mov eax, ebx
mov ebx, esi
mov esi, eax
jmp 0x46b720
call sub.cygwin1.dll_wcwidth
xor ecx, ecx
test eax, eax
cmovs eax, ecx
sub edi, eax
test edi, edi
jle 0x46b800
mov eax, dword [esp + 0x14]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46b800
add ebx, eax
movzx ecx, word [esp + 0x4c]
mov eax, 1
test ebp, ebp
je 0x46b716
mov dword [esp], ecx
cmp ebp, 1
je 0x46b70a
call sub.cygwin1.dll_wcwidth
test eax, eax
setg al
movzx eax, al
jmp 0x46b716
call sym.zsh.exe_mb_charinit
mov edi, dword [esp + 0x28]
sub edi, esi
mov esi, dword [esp + 0x78]
test edi, edi
jle 0x46b7dc
lea eax, [esp + 0x4c]
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x14], eax
mov eax, ebx
mov ebx, edi
mov edi, esi
mov esi, eax
jmp 0x46b79d
call sub.cygwin1.dll_wcwidth
xor ecx, ecx
test eax, eax
cmovs eax, ecx
sub ebx, eax
test ebx, ebx
jle 0x46b7d8
mov eax, dword [esp + 0x14]
mov dword [esp], edi
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46b7d8
add edi, eax
movzx ecx, word [esp + 0x4c]
mov eax, 1
test ebp, ebp
je 0x46b797
mov dword [esp], ecx
cmp ebp, 1
je 0x46b78b
call sub.cygwin1.dll_wcwidth
test eax, eax
setg al
movzx eax, al
jmp 0x46b797
mov ebx, esi
mov esi, edi
movzx eax, byte [esi]
mov ebp, dword [esp + 0x1c]
test al, al
je 0x46b3c4
add esi, 1
mov byte [ebp], al
add ebp, 1
movzx eax, byte [esi]
test al, al
jne 0x46b7eb
jmp 0x46b3c4
mov eax, esi
mov esi, ebx
mov ebx, eax
lea eax, [esp + 0x4c]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x46af07
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym.zsh.exe_mb_metacharlenconv
test eax, eax
je 0x46b89a
lea edx, [esi + eax]
mov edi, ebp
nop
movsb byte es:[edi], byte [esi]
cmp edx, esi
jne 0x46b840
mov edi, dword [esp + 0x80]
add ebp, eax
movzx esi, word [esp + 0x4c]
mov eax, 1
test edi, edi
je 0x46b87d
cmp dword [esp + 0x80], 1
mov dword [esp + 0x18], edx
mov dword [esp], esi
jne 0x46b887
call sub.cygwin1.dll_wcwidth
xor esi, esi
mov edx, dword [esp + 0x18]
test eax, eax
cmovs eax, esi
sub ebx, eax
test ebx, ebx
jle 0x46b89a
mov esi, edx
jmp 0x46b826
call sub.cygwin1.dll_wcwidth
mov edx, dword [esp + 0x18]
test eax, eax
setg al
movzx eax, al
jmp 0x46b87d
mov ebx, dword [esp + 0x10]
jmp 0x46af07