Function at 0x41e324
Capabilities:
Encrypt data using speck
Query environment variable
Read .ini file

Disassembly:
push 0x431de2
jmp fcn.004188fd
push 0x431e1a
jmp fcn.004188fd
push 0x431e4b
jmp fcn.004188fd
mov dword [0x4320c4], edi
mov byte [0x432186], 0
cmp byte [esi], 0
je 0x41f0ce
cmp byte [esi], 0x2e
je 0x41eecb
mov eax, dword [0x4320b8]
sub eax, 0xc
cmp eax, edi
jbe 0x4186d8
lodsb al, byte [esi]
cmp al, 1
je 0x41e466
cmp al, 2
je 0x41e482
cmp al, 4
je 0x41e48d
cmp al, 8
je 0x41e493
cmp al, 0xf
je 0x4187f2
cmp al, 0x10
je 0x41e497
cmp al, 0x11
je 0x41e4b7
cmp al, 0x29
je 0x41e44f
cmp al, 0x5d
je 0x41e44f
cmp al, 0x21
je 0x4187d4
sub edi, 0x14
mov ebx, edi
sub ebx, 0x14
cmp al, 0xf0
je 0x41ec51
cmp al, 0xf1
je 0x41ed2a
cmp al, 0xd0
je 0x41eb68
cmp al, 0xe0
je 0x41eb8e
cmp al, 0xe1
je 0x41ebc9
cmp al, 0x83
je 0x41ec0b
mov dx, word [ebx + 8]
or dx, word [edi + 8]
cmp al, 0x80
je 0x41e6fc
cmp al, 0x81
je 0x41e7ba
mov ah, byte [ebx + 0xc]
or ah, byte [edi + 0xc]
je 0x41e401
call fcn.0041f15e
cmp al, 0x90
je 0x41e849
cmp al, 0x91
je 0x41e9bc
or dx, dx
jne 0x4187d4
cmp al, 0xa0
je 0x41ea1b
cmp al, 0xb0
je 0x41ea31
cmp al, 0xb1
je 0x41ea46
cmp al, 0xb2
je 0x41ea5b
cmp al, 0xc0
je 0x41ea82
cmp al, 0xc1
je 0x41eb12
jmp 0x4187d4
sub edi, 0x14
cmp byte [0x432186], 0
je 0x41e465
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 0xc], eax
ret
xor eax, eax
lodsb al, byte [esi]
stosd dword es:[edi], eax
xor al, al
stosd dword es:[edi], eax
and word [edi], 0
and word [edi + 4], 0
and dword [edi + 8], 0
add edi, 0xc
jmp 0x41e343
xor eax, eax
lodsw ax, word [esi]
stosd dword es:[edi], eax
xor ax, ax
stosd dword es:[edi], eax
jmp 0x41e46d
movsd dword es:[edi], dword [esi]
xor eax, eax
stosd dword es:[edi], eax
jmp 0x41e46d
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x41e46d
mov byte [edi + 9], 0
and word [edi + 0xc], 0
lodsb al, byte [esi]
mov byte [edi + 8], al
mov byte [edi + 0xa], 1
xor eax, eax
mov dword [edi + 0x10], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
add edi, 0xc
jmp 0x41e343
xor eax, eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x14], eax
lodsd eax, dword [esi]
cmp eax, 0xf
jb 0x41e678
je 0x4188ab
mov ebx, eax
mov ax, word [0x432026]
mov word [ebx + 0x12], ax
mov cl, byte [ebx + 9]
shr cl, 1
and cl, 1
neg cl
or byte [ebx + 8], 8
test byte [ebx + 8], 1
je 0x41e6ab
cmp ax, word [ebx + 0x10]
je 0x41e544
test byte [ebx + 8], 4
jne 0x41e6a4
test byte [ebx + 9], 1
je 0x41e544
mov eax, dword [ebx]
sub eax, dword [0x4320f0]
stosd dword es:[edi], eax
mov eax, dword [ebx + 4]
sbb eax, dword [0x4320f4]
stosd dword es:[edi], eax
sbb cl, byte [0x432193]
mov byte [edi + 5], cl
mov eax, dword [0x4320f0]
or al, byte [0x432193]
or eax, dword [0x4320f4]
je 0x41e54e
or byte [0x432190], 0xff
jmp 0x41e54e
mov eax, dword [ebx]
stosd dword es:[edi], eax
mov eax, dword [ebx + 4]
stosd dword es:[edi], eax
mov byte [edi + 5], cl
test byte [ebx + 9], 4
jne 0x418896
call fcn.0041ee93
mov al, byte [ebx + 0xb]
mov byte [edi + 4], al
mov eax, dword [ebx + 0xc]
mov dword [edi], eax
cmp al, ah
jne 0x41e57c
shr eax, 0x10
add al, ah
jo 0x41e57c
xor ah, ah
mov word [edi + 2], ax
mov byte [edi + 1], ah
mov eax, dword [ebx + 0x14]
mov dword [edi + 8], eax
add edi, 0xc
mov al, byte [ebx + 0xa]
or al, al
je 0x41e343
test byte [0x43216d], 1
jne 0x41e343
xchg byte [0x43216c], al
or al, al
je 0x41e343
cmp al, byte [0x43216c]
jne 0x418798
jmp 0x41e343
mov eax, dword [0x4320a0]
mov ebp, dword [0x432098]
test byte ds:[ebp + 0xa], 1
jne 0x41e5d6
cmp eax, dword [0x4320c4]
jne 0x41e5f1
mov eax, dword [0x43209c]
jmp 0x41e5f6
mov ebp, dword [0x432098]
test byte ds:[ebp + 0xa], 1
je 0x41e5f1
mov eax, dword [0x4320a0]
jmp 0x41e5f6
mov eax, dword [0x4320c4]
cmp byte [0x432191], 2
jae 0x418896
sub eax, dword [0x432034]
jmp 0x41e65b
mov eax, dword [0x4320c4]
xor edx, edx
xor ch, ch
mov ebp, dword [0x432098]
sub eax, dword ds:[ebp]
sbb edx, dword ds:[ebp + 4]
sbb ch, byte ds:[ebp + 8]
jp 0x41e62d
call fcn.0041f137
stosd dword es:[edi], eax
mov eax, edx
stosd dword es:[edi], eax
mov eax, dword ds:[ebp + 0x10]
stosd dword es:[edi], eax
mov cl, byte ds:[ebp + 9]
mov word [edi], cx
mov eax, dword ds:[ebp + 0x14]
mov dword [edi + 4], eax
add edi, 8
jmp 0x41e343
mov eax, dword [0x432098]
mov eax, dword [eax + 0x18]
jmp 0x41e610
mov eax, dword [0x4320a4]
stosd dword es:[edi], eax
xor eax, eax
stosd dword es:[edi], eax
add edi, 0xc
jmp 0x41e343
call fcn.004185ea
stosd dword es:[edi], eax
mov eax, edx
stosd dword es:[edi], eax
add edi, 0xc
jmp 0x41e343
or eax, eax
je 0x41e60b
cmp eax, 1
je 0x41e656
cmp eax, 2
je 0x41e667
cmp eax, 3
je 0x41e64c
cmp eax, 4
je 0x41e5dd
cmp eax, 5
je 0x41e5bc
mov edx, 0x4187e8
jmp 0x41e6b0
mov edx, 0x418853
jmp 0x41e6b0
mov edx, 0x4187fc
cmp word [0x432026], 1
ja 0x41e6c1
or byte [0x432190], 0xff
or byte [0x432186], 0xff
and word [edi + 0xc], 0
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
add edi, 0xc
cmp dword [0x4320b0], 0
jne 0x41e343
mov eax, dword [0x432048]
mov dword [0x4320b0], eax
mov dword [0x4320b4], edx
mov dword [0x4320ac], ebx
jmp 0x41e343
xor ah, ah
mov ah, byte [ebx + 0xc]
mov al, byte [edi + 0xc]
or al, al
je 0x41e727
or ah, ah
je 0x41e71f
add ah, al
jne 0x41e718
mov ecx, dword [edi + 0x10]
cmp ecx, dword [ebx + 0x10]
je 0x41e727
call fcn.0041f15e
jmp 0x41e727
mov ah, al
mov ecx, dword [edi + 0x10]
mov dword [ebx + 0x10], ecx
mov byte [ebx + 0xc], ah
mov eax, dword [edi]
add dword [ebx], eax
mov eax, dword [edi + 4]
adc dword [ebx + 4], eax
mov al, byte [edi + 0xd]
adc byte [ebx + 0xd], al
jp 0x41e741
call fcn.0041f137
or dx, dx
je 0x41e343
push esi
mov esi, ebx
mov cl, byte [edi + 0xa]
mov al, byte [edi + 8]
call fcn.0041e769
mov cl, byte [edi + 0xb]
mov al, byte [edi + 9]
call fcn.0041e769
pop esi
jmp 0x41e343
xor ah, ah
mov ah, byte [ebx + 0xc]
mov al, byte [edi + 0xc]
or al, al
je 0x41e7e9
or ah, ah
je 0x41e7df
cmp al, ah
jne 0x41e7d8
xor ah, ah
mov ecx, dword [edi + 0x10]
cmp ecx, dword [ebx + 0x10]
je 0x41e7e9
call fcn.0041f15e
jmp 0x41e7e9
neg al
mov ah, al
mov ecx, dword [edi + 0x10]
mov dword [ebx + 0x10], ecx
mov byte [ebx + 0xc], ah
mov eax, dword [edi]
sub dword [ebx], eax
mov eax, dword [edi + 4]
sbb dword [ebx + 4], eax
mov al, byte [edi + 0xd]
sbb byte [ebx + 0xd], al
jp 0x41e80c
cmp dword [0x4320b0], 0
jne 0x41e80c
call fcn.0041f137
or dx, dx
je 0x41e343
push esi
mov esi, ebx
mov cl, byte [edi + 0xa]
mov al, byte [edi + 8]
call fcn.0041e834
mov cl, byte [edi + 0xb]
mov al, byte [edi + 9]
call fcn.0041e834
pop esi
jmp 0x41e343
or dx, dx
je 0x41e868
cmp word [ebx + 8], 0
jne 0x41e868
xor ecx, ecx
mov eax, dword [ebx + ecx]
xchg dword [edi + ecx], eax
mov dword [ebx + ecx], eax
add ecx, 4
cmp ecx, 0x10
jb 0x41e857
push esi
push edx
mov esi, ebx
xor bl, bl
cmp byte [esi + 0xd], 0
je 0x41e893
xor bl, 0xff
mov eax, dword [esi]
mov edx, dword [esi + 4]
not eax
not edx
add eax, 1
adc edx, 0
mov dword [esi], eax
mov dword [esi + 4], edx
or eax, edx
je 0x41e998
cmp byte [edi + 0xd], 0
je 0x41e8d6
xor bl, 0xff
cmp byte [esi + 8], 0
je 0x41e8ab
neg byte [esi + 0xa]
jo 0x4187d4
cmp byte [esi + 9], 0
je 0x41e8ba
neg byte [esi + 0xb]
jo 0x4187d4
mov eax, dword [edi]
mov edx, dword [edi + 4]
not eax
not edx
add eax, 1
adc edx, 0
mov dword [edi], eax
mov dword [edi + 4], edx
or eax, edx
je 0x41e998
cmp dword [esi + 4], 0
je 0x41e8e8
cmp dword [edi + 4], 0
je 0x41e8e8
jne 0x41e998
mov eax, dword [esi + 4]
mul dword [edi]
or edx, edx
jne 0x41e998
mov ecx, eax
mov eax, dword [esi]
mul dword [edi + 4]
or edx, edx
jne 0x41e998
add ecx, eax
jb 0x41e998
mov eax, dword [esi]
mul dword [edi]
add edx, ecx
jb 0x41e998
mov dword [esi], eax
mov dword [esi + 4], edx
or bl, bl
je 0x41e936
not eax
not edx
add eax, 1
adc edx, 0
mov dword [esi], eax
mov dword [esi + 4], edx
or eax, edx
jne 0x41e936
not bl
mov byte [esi + 0xd], bl
pop edx
or dx, dx
je 0x41e992
cmp word [edi + 8], 0
jne 0x4187e8
cmp byte [esi + 8], 0
je 0x41e96e
call fcn.0041e9a4
imul byte [esi + 0xa]
mov dl, ah
cbw
cmp ah, dl
jne 0x4187f2
mov byte [esi + 0xa], al
or al, al
jne 0x41e96e
mov byte [esi + 8], al
cmp byte [esi + 9], 0
je 0x41e992
call fcn.0041e9a4
imul byte [esi + 0xb]
mov dl, ah
cbw
cmp ah, dl
jne 0x4187f2
mov byte [esi + 0xb], al
or al, al
jne 0x41e992
mov byte [esi + 9], al
pop esi
jmp 0x41e343
pop edx
pop esi
call fcn.0041f137
jmp 0x41e343
push esi
push edx
mov esi, ebx
call fcn.0041ed7a
pop edx
or dx, dx
je 0x41ea15
cmp byte [esi + 8], 0
je 0x41e9f0
call fcn.0041e9a4
or al, al
je 0x4187f2
mov al, byte [esi + 0xa]
cbw
idiv byte [edi]
or ah, ah
jne 0x418896
mov byte [esi + 0xa], al
cmp byte [esi + 9], 0
je 0x41ea15
call fcn.0041e9a4
or al, al
je 0x4187f2
mov al, byte [esi + 0xb]
cbw
idiv byte [edi]
or ah, ah
jne 0x418896
mov byte [esi + 0xb], al
pop esi
jmp 0x41e343
push esi
mov esi, ebx
call fcn.0041ed7a
mov dword [esi], eax
mov dword [esi + 4], edx
mov byte [esi + 0xd], bh
pop esi
jmp 0x41e343
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov cl, byte [edi + 0xd]
and dword [ebx], eax
and dword [ebx + 4], edx
and byte [ebx + 0xd], cl
jmp 0x41e343
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov cl, byte [edi + 0xd]
or dword [ebx], eax
or dword [ebx + 4], edx
or byte [ebx + 0xd], cl
jmp 0x41e343
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov cl, byte [edi + 0xd]
xor dword [ebx], eax
xor dword [ebx + 4], edx
xor byte [ebx + 0xd], cl
jmp 0x41e343
mov byte [edi + 0xd], 0
not dword [edi]
not dword [edi + 4]
add dword [edi], 1
adc dword [edi + 4], 0
jb 0x41eab4
cmp byte [edi + 0xd], 0
jne 0x41eafd
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
cmp dword [edi + 4], 0
jne 0x41eab4
movsx ecx, byte [ebx + 0xd]
xchg dword [edi], ecx
cmp ecx, 0x40
je 0x41eaba
ja 0x41eab4
cmp ecx, 0x20
jae 0x41ead2
shld dword [edi], edx, cl
shld edx, eax, cl
shl eax, cl
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x41eae7
cmp byte [ebx + 0xd], 0
jne 0x41eaf3
movsx ecx, byte [ebx + 0xd]
cmp eax, ecx
jne 0x41eaf3
cmp edx, ecx
jne 0x41eaf3
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
jmp 0x41e343
sub cl, 0x20
shld dword [edi], edx, cl
shld edx, eax, cl
shl eax, cl
mov dword [ebx + 4], eax
and dword [ebx], 0
cmp edx, dword [edi]
jne 0x41eaf3
movsx eax, byte [ebx + 0xd]
cmp eax, dword [edi]
je 0x41e343
call fcn.0041f137
jmp 0x41e343
mov byte [edi + 0xd], 0
not dword [edi]
not dword [edi + 4]
add dword [edi], 1
adc dword [edi + 4], 0
jae 0x41eb12
dec dword [edi + 4]
cmp byte [edi + 0xd], 0
jne 0x41ea70
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
cmp dword [edi + 4], 0
jne 0x41eb5a
mov ecx, dword [edi]
cmp ecx, 0x40
jae 0x41eb5a
push esi
movsx esi, byte [ebx + 0xd]
cmp ecx, 0x20
jae 0x41eb49
shrd eax, edx, cl
shrd edx, esi, cl
mov dword [ebx], eax
mov dword [ebx + 4], edx
pop esi
jmp 0x41e343
sub cl, 0x20
shrd edx, esi, cl
mov dword [ebx], edx
mov dword [ebx + 4], esi
pop esi
jmp 0x41e343
movsx eax, byte [ebx + 0xd]
mov dword [ebx], eax
mov dword [ebx + 4], eax
jmp 0x41e343
cmp word [edi + 8], 0
jne 0x4187d4
cmp byte [edi + 0xc], 0
je 0x41eb7e
call fcn.0041f15e
not dword [edi]
not dword [edi + 4]
not byte [edi + 0xd]
add edi, 0x14
jmp 0x41e343
cmp word [edi + 8], 0
jne 0x4187d4
cmp byte [edi + 0xc], 0
je 0x41eba4
call fcn.0041f15e
xor ecx, ecx
bsf eax, dword [edi]
jne 0x41ebf7
mov ecx, 0x20
bsf eax, dword [edi + 4]
jne 0x41ebf7
cmp byte [edi + 0xd], 0
jne 0x41ebf7
call fcn.0041f137
add edi, 0x14
jmp 0x41e343
cmp word [edi + 8], 0
jne 0x4187d4
cmp byte [edi + 0xc], 0
je 0x41ebdf
call fcn.0041f15e
cmp byte [edi + 0xd], 0
jne 0x41ebbc
mov ecx, 0x20
bsr eax, dword [edi + 4]
jne 0x41ebf7
xor ecx, ecx
bsr eax, dword [edi]
je 0x41ebbc
add eax, ecx
xor edx, edx
mov dword [edi], eax
mov dword [edi + 4], edx
mov byte [edi + 0xd], dl
add edi, 0x14
jmp 0x41e343
cmp byte [edi + 8], 0
je 0x41ec1a
neg byte [edi + 0xa]
jo 0x4187d4
cmp byte [edi + 9], 0
je 0x41ec29
neg byte [edi + 0xb]
jo 0x4187d4
neg byte [edi + 0xc]
xor eax, eax
xor edx, edx
xor cl, cl
xchg dword [edi], eax
xchg dword [edi + 4], edx
xchg byte [edi + 0xd], cl
sub dword [edi], eax
sbb dword [edi + 4], edx
sbb byte [edi + 0xd], cl
jp 0x41ec49
call fcn.0041f137
add edi, 0x14
jmp 0x41e343
cmp word [edi + 8], 0
jne 0x4187d4
mov al, byte [0x432191]
cmp al, 5
je 0x41ecec
cmp al, 4
je 0x41ed08
cmp al, 3
jne 0x4187d4
test dword [0x432108], 8
jne 0x41ecc3
mov al, 2
bt dword [0x43210c], 0
jb 0x41ec93
xor al, al
cmp byte [edi + 0xc], al
je 0x41ec9d
call fcn.0041f15e
mov byte [edi + 0xc], 0
mov eax, dword [0x432034]
mov eax, dword [eax + 0x34]
xor edx, edx
sub dword [edi], eax
sbb dword [edi + 4], edx
sbb byte [edi + 0xd], 0
jp 0x41ecbb
call fcn.0041f137
add edi, 0x14
jmp 0x41e343
mov al, 4
bt dword [0x43210c], 0
jb 0x41ecd1
xor al, al
cmp byte [edi + 0xc], al
je 0x41ecdb
call fcn.0041f15e
mov byte [edi + 0xc], 0
mov eax, dword [0x432034]
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
jmp 0x41ecab
test dword [0x432108], 1
jne 0x41ed20
test dword [0x432108], 8
jne 0x4187d4
mov dl, 5
cmp byte [edi + 0xc], 2
je 0x41ed15
call fcn.0041f15e
mov byte [edi + 0xc], dl
add edi, 0x14
jmp 0x41e343
xor dl, dl
test byte [edi + 0xc], 1
jne 0x41ed10
jmp 0x41ed15
cmp word [edi + 8], 0
jne 0x4187d4
cmp byte [0x432191], 5
jne 0x4187d4
test dword [0x432108], 1
jne 0x4187d4
mov dl, 6
mov dh, 2
test dword [0x432108], 8
je 0x41ed64
mov dh, 4
mov eax, dword [edi]
or eax, dword [edi + 4]
jne 0x41ed10
cmp byte [edi + 0xc], dh
jne 0x41ed10
mov eax, dword [edi + 0x10]
cmp byte [eax], 0x80
jne 0x41ed10
jmp 0x41ed15
inc esi
and word [edi + 8], 0
and word [edi + 0xc], 0
mov al, byte [0x432180]
cmp al, 2
je 0x41efb7
cmp al, 4
je 0x41f046
test al, 0xf7
je 0x41eef4
call fcn.0041f15e
xor eax, eax
xor edx, edx
cmp word [esi + 8], 0x8000
je 0x41efa6
mov bx, word [esi + 8]
mov eax, dword [esi]
mov edx, dword [esi + 4]
add eax, eax
adc edx, edx
mov ecx, edx
shr edx, 0xc
shrd eax, ecx, 0xc
jae 0x41ef34
add eax, 1
adc edx, 0
bt edx, 0x14
jae 0x41ef34
and edx, 0xfffff
inc bx
shr edx, 1
rcr eax, 1
add bx, 0x3ff
cmp bx, 0x7ff
jge 0x4187f2
cmp bx, 0
jg 0x41ef97
or edx, 0x100000
mov cx, bx
neg cx
inc cx
cmp cx, 0x35
ja 0x4187f2
cmp cx, 0x20
jb 0x41ef74
sub cx, 0x20
mov eax, edx
xor edx, edx
shr eax, cl
jmp 0x41ef7b
mov ebx, edx
shr edx, cl
shrd eax, ebx, cl
mov bx, 0
jae 0x41ef97
add eax, 1
adc edx, 0
test edx, 0x100000
je 0x41ef97
and edx, 0xfffff
inc bx
shl ebx, 0x14
or edx, ebx
jne 0x41efa6
or eax, eax
je 0x4187f2
mov bl, byte [esi + 0xb]
shl ebx, 0x1f
or edx, ebx
mov dword [edi], eax
mov dword [edi + 4], edx
add esi, 0xd
ret
xor eax, eax
cmp word [esi + 8], 0x8000
je 0x41f031
mov bx, word [esi + 8]
mov ax, word [esi + 6]
shl ax, 1
shr ax, 6
jae 0x41efe4
inc ax
bt ax, 0xa
jae 0x41efe4
and ax, 0x3ff
inc bx
shr ax, 1
add bx, 0xf
cmp bx, 0x1f
jge 0x4187f2
cmp bx, 0
jg 0x41f024
or ax, 0x400
mov cx, bx
neg cx
inc cx
cmp cx, 0xb
ja 0x4187f2
xor bx, bx
shr ax, cl
jae 0x41f024
inc ax
test ax, 0x400
je 0x41f024
and ax, 0x3ff
inc bx
shl bx, 0xa
or ax, bx
je 0x4187f2
mov bl, byte [esi + 0xb]
shl bx, 0xf
or ax, bx
mov dword [edi], eax
xor eax, eax
mov dword [edi + 4], eax
add esi, 0xd
ret
xor eax, eax
cmp word [esi + 8], 0x8000
je 0x41f0bb
mov bx, word [esi + 8]
mov eax, dword [esi + 4]
shl eax, 1
shr eax, 9
jae 0x41f06e
inc eax
bt eax, 0x17
jae 0x41f06e
and eax, 0x7fffff
inc bx
shr eax, 1
add bx, 0x7f
cmp bx, 0xff
jge 0x4187f2
cmp bx, 0
jg 0x41f0b0
or eax, 0x800000
mov cx, bx
neg cx
inc cx
cmp cx, 0x18
ja 0x4187f2
xor bx, bx
shr eax, cl
jae 0x41f0b0
inc eax
test eax, 0x800000
je 0x41f0b0
and eax, 0x7fffff
inc bx
shl ebx, 0x17
or eax, ebx
je 0x4187f2
mov bl, byte [esi + 0xb]
shl ebx, 0x1f
or eax, ebx
mov dword [edi], eax
xor eax, eax
mov dword [edi + 4], eax
add esi, 0xd
ret
inc esi
lodsd eax, dword [esi]
mov ecx, eax
cmp ecx, 8
ja 0x4187f2
mov edx, edi
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, edx
rep movsb byte es:[edi], byte [esi]
mov edi, edx
inc esi
and word [edi + 8], 0
and word [edi + 0xc], 0
ret