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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov ebx, edx
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 4]
mov edx, dword [edx + 4]
cmp eax, edx
cmovg edx, eax
test edx, edx
je 0x4dfca9
mov dword [esp + 0x50], ecx
mov dword [esp], edx
mov edi, dword [esp + 0x70]
cmp byte [edi + 0x14], 0
jne 0x4dfcde
mov ecx, dword [edi + 8]
mov esi, dword [edi + 0x10]
cmp ecx, dword [edi + 0xc]
jne 0x4dfcc7
mov ebp, edi
mov dword [esp + 0x28], ebx
lea eax, [ecx + ecx*2]
shr eax, 1
test ecx, ecx
mov edi, 0x20
cmovne edi, eax
cmp edi, ecx
jbe 0x4dfcd2
cmp edi, 0x3fffffff
ja 0x4dfcd2
lea eax, [edi*4]
push eax
push dword [ebp + 4]
call sym.fastboot.exe_OPENSSL_realloc
add esp, 8
test eax, eax
je 0x4dfcd2
mov dword [ebp + 4], eax
mov dword [ebp + 0xc], edi
mov edi, ebp
mov ecx, dword [ebp + 8]
mov ebx, dword [esp + 0x28]
jmp 0x4dfcca
mov dword [ebx], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 4], 0
mov eax, 1
jmp 0x4e00b8
mov eax, dword [edi + 4]
mov dword [eax + ecx*4], esi
inc dword [edi + 8]
jmp 0x4dfcde
mov edi, ebp
mov word [ebp + 0x14], 0x101
mov ebx, dword [esp + 0x28]
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov esi, eax
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov ebp, eax
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
test esi, esi
je 0x4e009d
test ebp, ebp
je 0x4e009d
test eax, eax
je 0x4e009d
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0x68]
cmp esi, edi
mov dword [esp + 0xc], ebp
je 0x4dfd64
push dword [edi + 4]
push esi
call fcn.004d4f40
add esp, 8
test eax, eax
je 0x4e0099
mov eax, dword [edi + 4]
lea ecx, [eax*4]
test ecx, ecx
je 0x4dfd57
push ecx
push dword [edi]
push dword [esi]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov ebp, dword [esp + 0xc]
mov eax, dword [esp + 0x6c]
cmp ebp, eax
je 0x4dfdb4
push dword [eax + 4]
push ebp
mov edi, eax
call fcn.004d4f40
add esp, 8
test eax, eax
je 0x4e0099
mov eax, dword [edi + 4]
lea ecx, [eax*4]
test ecx, ecx
mov ebp, dword [esp + 0xc]
mov edx, edi
je 0x4dfdab
push ecx
push dword [edx]
push dword [ebp]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov edx, dword [esp + 0x78]
add esp, 0xc
mov eax, dword [edx + 4]
mov dword [ebp + 4], eax
mov eax, dword [edx + 0xc]
mov dword [ebp + 0xc], eax
mov dword [esp + 0x28], ebx
mov eax, dword [esi + 4]
mov ebx, eax
mov edi, dword [esp]
sub ebx, edi
mov dword [esp + 0x14], esi
jbe 0x4dfe56
mov ecx, dword [esi]
xor esi, esi
mov edx, edi
cmp ebx, 8
jb 0x4dfe40
mov edi, ebx
and edi, 0xfffffff8
mov esi, dword [esp]
lea edx, [esi + edi]
lea esi, [ecx + esi*4]
add esi, 0x10
pxor xmm0, xmm0
xor ebp, ebp
pxor xmm1, xmm1
nop word cs:[eax + eax]
movdqu xmm2, xmmword [esi + ebp*4 - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [esi + ebp*4]
por xmm1, xmm2
add ebp, 8
cmp edi, ebp
jne 0x4dfe00
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movd esi, xmm1
cmp ebx, edi
je 0x4dfe48
nop dword [eax + eax]
or esi, dword [ecx + edx*4]
inc edx
cmp eax, edx
jne 0x4dfe40
test esi, esi
mov esi, dword [esp + 0x14]
jne 0x4dff24
jmp 0x4dfe87
push edi
push esi
call fcn.004d4f40
add esp, 8
test eax, eax
je 0x4e0099
mov eax, dword [esi + 4]
mov ecx, edi
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x4dfe87
shl eax, 2
add eax, dword [esi]
push ecx
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov edi, dword [esp]
mov dword [esi + 4], edi
mov ebp, dword [esp + 0xc]
mov eax, dword [ebp + 4]
mov ebx, eax
sub ebx, edi
jbe 0x4dff51
mov ecx, dword [ebp]
xor esi, esi
mov edx, edi
cmp ebx, 8
jb 0x4dff10
mov ebp, ebx
and ebp, 0xfffffff8
mov esi, dword [esp]
lea edx, [esi + ebp]
lea esi, [ecx + esi*4]
add esi, 0x10
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
nop word cs:[eax + eax]
movdqu xmm2, xmmword [esi + edi*4 - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [esi + edi*4]
por xmm1, xmm2
add edi, 8
cmp ebp, edi
jne 0x4dfed0
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movd esi, xmm1
cmp ebx, ebp
je 0x4dff18
nop dword [eax + eax]
or esi, dword [ecx + edx*4]
inc edx
cmp eax, edx
jne 0x4dff10
test esi, esi
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0xc]
je 0x4dff83
push 0x18f
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
xor eax, eax
mov edi, dword [esp + 0x70]
cmp byte [edi + 0x14], 0
jne 0x4e00b8
jmp 0x4e00a5
push edi
push ebp
call fcn.004d4f40
add esp, 8
test eax, eax
je 0x4e0099
mov eax, dword [ebp + 4]
mov ecx, edi
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x4dff83
shl eax, 2
add eax, dword [ebp]
push ecx
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov edi, dword [esp]
mov dword [ebp + 4], edi
mov ebp, dword [esp + 0x1c]
mov eax, dword [ebp + 4]
mov ebx, eax
sub ebx, edi
jbe 0x4e0030
mov ecx, dword [ebp]
xor esi, esi
mov edx, edi
cmp ebx, 8
mov edi, dword [esp + 0x70]
jb 0x4e0010
mov ebp, ebx
and ebp, 0xfffffff8
mov esi, dword [esp]
lea edx, [esi + ebp]
lea esi, [ecx + esi*4]
add esi, 0x10
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
nop word cs:[eax + eax]
movdqu xmm2, xmmword [esi + edi*4 - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [esi + edi*4]
por xmm1, xmm2
add edi, 8
cmp ebp, edi
jne 0x4dffd0
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movd esi, xmm1
cmp ebx, ebp
mov edi, dword [esp + 0x70]
je 0x4e0018
nop dword [eax]
or esi, dword [ecx + edx*4]
inc edx
cmp eax, edx
jne 0x4e0010
test esi, esi
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
je 0x4e0062
push 0x18f
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
jmp 0x4e0089
push edi
push ebp
call fcn.004d4f40
add esp, 8
test eax, eax
je 0x4e0099
mov eax, dword [ebp + 4]
mov ecx, edi
sub ecx, eax
shl ecx, 2
test ecx, ecx
mov edi, dword [esp + 0x70]
je 0x4e0062
shl eax, 2
add eax, dword [ebp]
push ecx
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov eax, dword [esp]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 4]
mov eax, ecx
shl eax, 5
mov edx, dword [esp + 0x6c]
add ecx, dword [edx + 4]
shl ecx, 5
cmp ecx, eax
jae 0x4e00c0
push 0x4e
push str.external_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
push 0x66
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
jmp 0x4e009d
mov edi, dword [esp + 0x70]
xor eax, eax
cmp byte [edi + 0x14], 0
jne 0x4e00b8
mov esi, dword [edi + 4]
mov ecx, dword [edi + 8]
lea edx, [ecx - 1]
mov dword [edi + 8], edx
mov ecx, dword [esi + ecx*4 - 4]
mov dword [edi + 0x10], ecx
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, 0
test ecx, ecx
mov ebx, dword [esp]
je 0x4e0846
lea eax, [ebx - 1]
lea edx, [ebx*4]
mov dword [esp + 0x10], edx
lea edx, [ebx*4 - 4]
mov dword [esp + 0x34], edx
mov edx, ebx
and edx, 0xfffffff8
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
and eax, 0xfffffff8
mov dword [esp + 0x30], eax
lea eax, [ebx + 3]
mov dword [esp + 0x40], eax
and eax, 3
mov dword [esp + 0x38], eax
lea eax, [ebx - 2]
mov dword [esp + 0x3c], eax
xor edx, edx
xor eax, eax
mov dword [esp + 0x44], ecx
jmp 0x4e013d
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x18]
mov edx, dword [esp + 0x4c]
inc edx
mov ecx, dword [esp + 0x44]
cmp edx, ecx
mov esi, dword [esp + 0x14]
je 0x4e0846
mov dword [esp + 0x4c], edx
mov dword [esp + 0x2c], eax
mov eax, dword [esi]
mov ecx, dword [eax]
and ecx, 1
neg ecx
mov edx, dword [esp + 0xc]
mov edx, dword [edx]
mov ebp, dword [edx]
and ebp, 1
neg ebp
and ebp, ecx
push ebx
push edx
push eax
mov edi, dword [esp + 0x28]
push dword [edi]
call fcn.004d59f0
add esp, 0x10
mov dword [esp + 0x18], eax
dec eax
mov dword [esp + 4], ebp
and eax, ebp
mov ecx, eax
not eax
mov edx, dword [esi]
mov esi, dword [edi]
mov edi, 0
cmp ebx, 8
jb 0x4e0220
mov edi, dword [esp + 0x10]
add edi, esi
cmp edx, edi
jae 0x4e01ac
mov edi, dword [esp + 0x10]
lea ebx, [edx + edi]
mov edi, 0
cmp esi, ebx
mov ebx, dword [esp]
jb 0x4e0220
movd xmm0, ecx
pshufd xmm0, xmm0, 0
movd xmm1, eax
pshufd xmm1, xmm1, 0
xor edi, edi
mov ebp, dword [esp + 0x24]
nop word cs:[eax + eax]
movdqu xmm2, xmmword [esi + edi*4]
movdqu xmm3, xmmword [esi + edi*4 + 0x10]
movdqu xmm4, xmmword [edx + edi*4]
movdqu xmm5, xmmword [edx + edi*4 + 0x10]
pand xmm2, xmm0
pand xmm3, xmm0
pand xmm4, xmm1
por xmm4, xmm2
pand xmm5, xmm1
por xmm5, xmm3
movdqu xmmword [edx + edi*4], xmm4
movdqu xmmword [edx + edi*4 + 0x10], xmm5
add edi, 8
cmp ebp, edi
jne 0x4e01d0
mov edi, ebp
cmp ebx, ebp
je 0x4e027b
nop word cs:[eax + eax]
mov ebp, edi
or ebp, 1
test bl, 1
je 0x4e0244
mov ebx, dword [esi + edi*4]
and ebx, ecx
mov dword [esp + 8], ebx
mov ebx, dword [edx + edi*4]
and ebx, eax
or ebx, dword [esp + 8]
mov dword [edx + edi*4], ebx
mov ebx, dword [esp]
mov edi, ebp
cmp ebx, ebp
je 0x4e027b
nop dword [eax + eax]
mov ebx, dword [esi + edi*4]
and ebx, ecx
mov ebp, dword [edx + edi*4]
and ebp, eax
or ebp, ebx
mov dword [edx + edi*4], ebp
mov ebx, dword [esi + edi*4 + 4]
and ebx, ecx
mov ebp, dword [edx + edi*4 + 4]
and ebp, eax
or ebp, ebx
mov ebx, dword [esp]
mov dword [edx + edi*4 + 4], ebp
add edi, 2
cmp ebx, edi
jne 0x4e0250
mov esi, dword [esp + 0x18]
neg esi
push ebx
mov eax, dword [esp + 0x18]
push dword [eax]
mov edi, dword [esp + 0x14]
push dword [edi]
mov ebp, dword [esp + 0x28]
push dword [ebp]
call fcn.004d59f0
add esp, 0x10
mov ecx, dword [esp + 4]
and ecx, esi
mov eax, ecx
not ecx
mov dword [esp + 4], ecx
xor esi, esi
mov ecx, dword [edi]
mov edx, dword [ebp]
cmp ebx, 8
jae 0x4e02c0
mov ebp, dword [esp + 4]
jmp 0x4e0340
mov edi, dword [esp + 0x10]
add edi, edx
cmp ecx, edi
mov ebp, dword [esp + 4]
jae 0x4e02d8
mov edi, dword [esp + 0x10]
add edi, ecx
cmp edx, edi
jb 0x4e0340
movd xmm0, eax
pshufd xmm0, xmm0, 0
movd xmm1, ebp
pshufd xmm1, xmm1, 0
xor esi, esi
mov edi, dword [esp + 0x24]
movdqu xmm2, xmmword [edx + esi*4]
movdqu xmm3, xmmword [edx + esi*4 + 0x10]
movdqu xmm4, xmmword [ecx + esi*4]
movdqu xmm5, xmmword [ecx + esi*4 + 0x10]
pand xmm2, xmm0
pand xmm3, xmm0
pand xmm4, xmm1
por xmm4, xmm2
pand xmm5, xmm1
por xmm5, xmm3
movdqu xmmword [ecx + esi*4], xmm4
movdqu xmmword [ecx + esi*4 + 0x10], xmm5
add esi, 8
cmp edi, esi
jne 0x4e02f0
mov esi, edi
cmp ebx, edi
je 0x4e039b
nop word cs:[eax + eax]
mov edi, esi
or edi, 1
test bl, 1
je 0x4e0364
mov ebx, dword [edx + esi*4]
and ebx, eax
mov ebp, dword [ecx + esi*4]
and ebp, dword [esp + 4]
or ebp, ebx
mov ebx, dword [esp]
mov dword [ecx + esi*4], ebp
mov ebp, dword [esp + 4]
mov esi, edi
cmp ebx, edi
je 0x4e039b
nop dword [eax + eax]
mov edi, dword [edx + esi*4]
and edi, eax
mov ebx, dword [ecx + esi*4]
and ebx, ebp
or ebx, edi
mov dword [ecx + esi*4], ebx
mov edi, dword [edx + esi*4 + 4]
and edi, eax
mov ebx, dword [ecx + esi*4 + 4]
and ebx, ebp
or ebx, edi
mov dword [ecx + esi*4 + 4], ebx
mov ebx, dword [esp]
add esi, 2
cmp ebx, esi
jne 0x4e0370
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
mov eax, dword [edx]
mov esi, eax
and esi, 1
mov ecx, esi
neg ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
mov ecx, dword [ecx]
mov dword [esp + 4], ecx
dec esi
mov ecx, dword [esp + 0x1c]
mov ebp, dword [ecx]
mov ecx, dword [esp + 0x20]
test ecx, ecx
mov dword [esp + 0x18], esi
je 0x4e0479
xor eax, eax
cmp ecx, 8
jb 0x4e0452
mov ecx, dword [esp + 0x10]
lea edi, [edx + ecx]
cmp ebp, edi
jae 0x4e03f0
mov ecx, dword [esp + 0x34]
lea edi, [ecx + ebp]
cmp edx, edi
jb 0x4e0452
xor eax, eax
mov ecx, dword [esp + 0x30]
nop word cs:[eax + eax]
movdqu xmm0, xmmword [edx + eax*4 + 0x10]
movdqu xmm1, xmmword [edx + eax*4]
movdqu xmm2, xmmword [edx + eax*4 + 4]
movdqu xmm3, xmmword [edx + eax*4 + 0x14]
psrld xmm1, 1
pslld xmm2, 0x1f
por xmm2, xmm1
psrld xmm0, 1
pslld xmm3, 0x1f
por xmm3, xmm0
movdqu xmmword [ebp + eax*4], xmm2
movdqu xmmword [ebp + eax*4 + 0x10], xmm3
add eax, 8
cmp ecx, eax
jne 0x4e0400
mov eax, ecx
cmp dword [esp + 0x20], ecx
je 0x4e04d8
mov esi, dword [esp + 0x3c]
sub esi, eax
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x4e0480
mov edi, dword [edx + eax*4]
mov ecx, dword [edx + eax*4 + 4]
shld ecx, edi, 0x1f
lea edi, [eax + 1]
mov dword [ebp + eax*4], ecx
mov eax, edi
dec ebx
jne 0x4e0460
jmp 0x4e0482
shr eax, 1
mov dword [ebp], eax
jmp 0x4e04e6
mov edi, eax
cmp esi, 3
mov ebx, dword [esp]
mov esi, dword [esp + 0x20]
jb 0x4e04d8
nop
mov eax, dword [edx + edi*4]
mov ecx, dword [edx + edi*4 + 4]
shld ecx, eax, 0x1f
mov dword [ebp + edi*4], ecx
mov eax, dword [edx + edi*4 + 4]
mov ecx, dword [edx + edi*4 + 8]
shld ecx, eax, 0x1f
mov dword [ebp + edi*4 + 4], ecx
mov eax, dword [edx + edi*4 + 8]
mov ecx, dword [edx + edi*4 + 0xc]
shld ecx, eax, 0x1f
mov dword [ebp + edi*4 + 8], ecx
mov eax, dword [edx + edi*4 + 0xc]
mov ecx, dword [edx + edi*4 + 0x10]
shld ecx, eax, 0x1f
mov dword [ebp + edi*4 + 0xc], ecx
lea eax, [edi + 4]
mov edi, eax
cmp esi, eax
jne 0x4e0490
mov eax, dword [edx + ebx*4 - 4]
shr eax, 1
mov dword [ebp + ebx*4 - 4], eax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 4]
and eax, 1
mov dword [esp + 4], eax
mov eax, esi
mov esi, dword [esp + 8]
xor edi, edi
cmp ebx, 8
jb 0x4e0580
mov ecx, dword [esp + 0x10]
add ecx, ebp
cmp edx, ecx
jae 0x4e0516
mov ecx, dword [esp + 0x10]
add ecx, edx
cmp ebp, ecx
jb 0x4e0580
movd xmm0, eax
pshufd xmm0, xmm0, 0
movd xmm1, esi
pshufd xmm1, xmm1, 0
xor edi, edi
mov ecx, dword [esp + 0x24]
nop
movdqu xmm2, xmmword [ebp + edi*4]
movdqu xmm3, xmmword [ebp + edi*4 + 0x10]
movdqu xmm4, xmmword [edx + edi*4]
movdqu xmm5, xmmword [edx + edi*4 + 0x10]
pand xmm2, xmm0
pand xmm3, xmm0
pand xmm4, xmm1
por xmm4, xmm2
pand xmm5, xmm1
por xmm5, xmm3
movdqu xmmword [edx + edi*4], xmm4
movdqu xmmword [edx + edi*4 + 0x10], xmm5
add edi, 8
cmp ecx, edi
jne 0x4e0530
mov edi, ecx
cmp ebx, ecx
je 0x4e05dc
nop word [eax + eax]
mov ecx, ebx
mov ebx, edi
or ebx, 1
test cl, 1
je 0x4e05a4
mov ecx, dword [ebp + edi*4]
and ecx, eax
mov dword [esp + 8], ecx
mov ecx, dword [edx + edi*4]
and ecx, esi
or ecx, dword [esp + 8]
mov dword [edx + edi*4], ecx
mov edi, ebx
mov ecx, dword [esp]
cmp ecx, ebx
mov ebx, ecx
je 0x4e05dc
nop dword [eax]
mov ecx, dword [ebp + edi*4]
and ecx, eax
mov ebx, dword [edx + edi*4]
and ebx, esi
or ebx, ecx
mov dword [edx + edi*4], ebx
mov ecx, dword [ebp + edi*4 + 4]
and ecx, eax
mov ebx, dword [edx + edi*4 + 4]
and ebx, esi
or ebx, ecx
mov dword [edx + edi*4 + 4], ebx
mov ebx, dword [esp]
add edi, 2
cmp ebx, edi
jne 0x4e05b0
mov ecx, dword [esp + 4]
lea edi, [ecx - 1]
neg ecx
mov eax, dword [esp + 0xc]
mov ebp, dword [eax]
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
mov edx, dword [esp + 0x20]
test edx, edx
je 0x4e06b9
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
xor eax, eax
cmp edx, 8
jb 0x4e0680
mov ecx, dword [esp + 0x10]
add ecx, ebp
cmp esi, ecx
jae 0x4e0620
mov ecx, dword [esp + 0x34]
add ecx, esi
cmp ebp, ecx
jb 0x4e0680
xor eax, eax
mov ecx, dword [esp + 0x30]
nop word cs:[eax + eax]
movdqu xmm0, xmmword [ebp + eax*4 + 0x10]
movdqu xmm1, xmmword [ebp + eax*4]
movdqu xmm2, xmmword [ebp + eax*4 + 4]
movdqu xmm3, xmmword [ebp + eax*4 + 0x14]
psrld xmm1, 1
pslld xmm2, 0x1f
por xmm2, xmm1
psrld xmm0, 1
pslld xmm3, 0x1f
por xmm3, xmm0
movdqu xmmword [esi + eax*4], xmm2
movdqu xmmword [esi + eax*4 + 0x10], xmm3
add eax, 8
cmp ecx, eax
jne 0x4e0630
mov eax, ecx
cmp edx, ecx
je 0x4e0728
mov ecx, dword [esp + 0x3c]
sub ecx, eax
test byte [esp + 0x40], 3
mov dword [esp + 0x48], ecx
je 0x4e06c6
mov ebx, dword [esp + 0x38]
nop word cs:[eax + eax]
mov ecx, dword [ebp + eax*4]
mov edx, dword [ebp + eax*4 + 4]
shld edx, ecx, 0x1f
lea edi, [eax + 1]
mov dword [esi + eax*4], edx
mov eax, edi
dec ebx
jne 0x4e06a0
jmp 0x4e06c8
mov eax, dword [ebp]
shr eax, 1
mov dword [esi], eax
mov eax, dword [esp + 0x18]
jmp 0x4e073e
mov edi, eax
cmp dword [esp + 0x48], 3
mov ebx, dword [esp]
mov edx, dword [esp + 0x20]
jb 0x4e0728
nop word cs:[eax + eax]
mov eax, dword [ebp + edi*4]
mov ecx, dword [ebp + edi*4 + 4]
shld ecx, eax, 0x1f
mov dword [esi + edi*4], ecx
mov eax, dword [ebp + edi*4 + 4]
mov ecx, dword [ebp + edi*4 + 8]
shld ecx, eax, 0x1f
mov dword [esi + edi*4 + 4], ecx
mov eax, dword [ebp + edi*4 + 8]
mov ecx, dword [ebp + edi*4 + 0xc]
shld ecx, eax, 0x1f
mov dword [esi + edi*4 + 8], ecx
mov eax, dword [ebp + edi*4 + 0xc]
mov ecx, dword [ebp + edi*4 + 0x10]
shld ecx, eax, 0x1f
mov dword [esi + edi*4 + 0xc], ecx
lea eax, [edi + 4]
mov edi, eax
cmp edx, eax
jne 0x4e06e0
mov eax, dword [ebp + ebx*4 - 4]
shr eax, 1
mov dword [esi + ebx*4 - 4], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 4]
mov edi, dword [esp + 8]
and eax, edi
mov dword [esp + 0x18], eax
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
xor eax, eax
mov edx, ebx
cmp ebx, 8
jae 0x4e075c
mov ebx, edx
jmp 0x4e07e0
mov ecx, dword [esp + 0x10]
add ecx, esi
cmp ebp, ecx
mov edi, dword [esp + 8]
jae 0x4e0776
mov ebx, edx
mov ecx, dword [esp + 0x10]
add ecx, ebp
cmp esi, ecx
jb 0x4e07e0
movd xmm0, edi
pshufd xmm0, xmm0, 0
movd xmm1, dword [esp + 4]
pshufd xmm1, xmm1, 0
xor eax, eax
mov ecx, dword [esp + 0x24]
movdqu xmm2, xmmword [esi + eax*4]
movdqu xmm3, xmmword [esi + eax*4 + 0x10]
movdqu xmm4, xmmword [ebp + eax*4]
movdqu xmm5, xmmword [ebp + eax*4 + 0x10]
pand xmm2, xmm0
pand xmm3, xmm0
pand xmm4, xmm1
por xmm4, xmm2
pand xmm5, xmm1
por xmm5, xmm3
movdqu xmmword [ebp + eax*4], xmm4
movdqu xmmword [ebp + eax*4 + 0x10], xmm5
add eax, 8
cmp ecx, eax
jne 0x4e0790
mov eax, ecx
mov ebx, edx
cmp edx, ecx
je 0x4e0120
nop
mov edi, eax
or edi, 1
test bl, 1
je 0x4e0801
mov ecx, dword [esi + eax*4]
and ecx, dword [esp + 8]
mov edx, dword [ebp + eax*4]
and edx, dword [esp + 4]
or edx, ecx
mov dword [ebp + eax*4], edx
mov eax, edi
cmp ebx, edi
mov edi, dword [esp + 8]
je 0x4e0120
nop dword [eax]
mov ecx, dword [esi + eax*4]
and ecx, edi
mov edx, dword [ebp + eax*4]
mov ebx, dword [esp + 4]
and edx, ebx
or edx, ecx
mov dword [ebp + eax*4], edx
mov ecx, dword [esi + eax*4 + 4]
and ecx, edi
mov edx, dword [ebp + eax*4 + 4]
and edx, ebx
or edx, ecx
mov ebx, dword [esp]
mov dword [ebp + eax*4 + 4], edx
add eax, 2
cmp ebx, eax
jne 0x4e0810
jmp 0x4e0120
mov dword [esp + 0x2c], eax
mov eax, 1
cmp ebx, 2
cmovae eax, ebx
mov edi, dword [esp + 0xc]
mov ebp, 0
jb 0x4e088c
mov ecx, eax
and ecx, 0xfffffffe
xor ebp, ebp
mov edx, dword [esi]
mov edx, dword [edx + ebp*4]
mov esi, dword [edi]
or dword [esi + ebp*4], edx
mov edx, dword [esp + 0x14]
mov edx, dword [edx]
mov edx, dword [edx + ebp*4 + 4]
mov esi, dword [edi]
or dword [esi + ebp*4 + 4], edx
mov esi, dword [esp + 0x14]
add ebp, 2
cmp ecx, ebp
jne 0x4e0867
test al, 1
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x50]
je 0x4e08a6
mov eax, dword [esi]
mov eax, dword [eax + ebp*4]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
or dword [ecx + ebp*4], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
mov eax, dword [esp + 0xc]
mov esi, dword [eax]
mov ebp, dword [esp]
push ebp
push edi
call fcn.004d4f40
add esp, 8
test eax, eax
je 0x4e08f2
lea eax, [ebp*4]
test eax, eax
je 0x4e08de
push eax
push esi
push dword [edi]
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
mov eax, dword [esp]
mov dword [edi + 4], eax
mov dword [edi + 0xc], 0
mov eax, 1
jmp 0x4e08f4
xor eax, eax
mov edi, ebx
cmp byte [edi + 0x14], 0
jne 0x4e00b8
jmp 0x4e00a5