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

Disassembly:
push 0x430141
jmp fcn.00416c5c
push 0x430179
jmp fcn.00416c5c
push 0x4301aa
jmp fcn.00416c5c
mov dword [0x4310c4], edi
mov byte [0x431186], 0
cmp byte [esi], 0
je 0x41d42d
cmp byte [esi], 0x2e
je 0x41d22a
mov eax, dword [0x4310b8]
sub eax, 0xc
cmp eax, edi
jbe 0x416a37
lodsb al, byte [esi]
cmp al, 1
je 0x41c7c5
cmp al, 2
je 0x41c7e1
cmp al, 4
je 0x41c7ec
cmp al, 8
je 0x41c7f2
cmp al, 0xf
je 0x416b51
cmp al, 0x10
je 0x41c7f6
cmp al, 0x11
je 0x41c816
cmp al, 0x29
je 0x41c7ae
cmp al, 0x5d
je 0x41c7ae
cmp al, 0x21
je 0x416b33
sub edi, 0x14
mov ebx, edi
sub ebx, 0x14
cmp al, 0xf0
je 0x41cfb0
cmp al, 0xf1
je 0x41d089
cmp al, 0xd0
je 0x41cec7
cmp al, 0xe0
je 0x41ceed
cmp al, 0xe1
je 0x41cf28
cmp al, 0x83
je 0x41cf6a
mov dx, word [ebx + 8]
or dx, word [edi + 8]
cmp al, 0x80
je 0x41ca5b
cmp al, 0x81
je 0x41cb19
mov ah, byte [ebx + 0xc]
or ah, byte [edi + 0xc]
je 0x41c760
call fcn.0041d4bd
cmp al, 0x90
je 0x41cba8
cmp al, 0x91
je 0x41cd1b
or dx, dx
jne 0x416b33
cmp al, 0xa0
je 0x41cd7a
cmp al, 0xb0
je 0x41cd90
cmp al, 0xb1
je 0x41cda5
cmp al, 0xb2
je 0x41cdba
cmp al, 0xc0
je 0x41cde1
cmp al, 0xc1
je 0x41ce71
jmp 0x416b33
sub edi, 0x14
cmp byte [0x431186], 0
je 0x41c7c4
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 0x41c6a2
xor eax, eax
lodsw ax, word [esi]
stosd dword es:[edi], eax
xor ax, ax
stosd dword es:[edi], eax
jmp 0x41c7cc
movsd dword es:[edi], dword [esi]
xor eax, eax
stosd dword es:[edi], eax
jmp 0x41c7cc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x41c7cc
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 0x41c6a2
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 0x41c9d7
je 0x416c0a
mov ebx, eax
mov ax, word [0x431026]
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 0x41ca0a
cmp ax, word [ebx + 0x10]
je 0x41c8a3
test byte [ebx + 8], 4
jne 0x41ca03
test byte [ebx + 9], 1
je 0x41c8a3
mov eax, dword [ebx]
sub eax, dword [0x4310f0]
stosd dword es:[edi], eax
mov eax, dword [ebx + 4]
sbb eax, dword [0x4310f4]
stosd dword es:[edi], eax
sbb cl, byte [0x431193]
mov byte [edi + 5], cl
mov eax, dword [0x4310f0]
or al, byte [0x431193]
or eax, dword [0x4310f4]
je 0x41c8ad
or byte [0x431190], 0xff
jmp 0x41c8ad
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 0x416bf5
call fcn.0041d1f2
mov al, byte [ebx + 0xb]
mov byte [edi + 4], al
mov eax, dword [ebx + 0xc]
mov dword [edi], eax
cmp al, ah
jne 0x41c8db
shr eax, 0x10
add al, ah
jo 0x41c8db
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 0x41c6a2
test byte [0x43116d], 1
jne 0x41c6a2
xchg byte [0x43116c], al
or al, al
je 0x41c6a2
cmp al, byte [0x43116c]
jne 0x416af7
jmp 0x41c6a2
mov eax, dword [0x4310a0]
mov ebp, dword [0x431098]
test byte ds:[ebp + 0xa], 1
jne 0x41c935
cmp eax, dword [0x4310c4]
jne 0x41c950
mov eax, dword [0x43109c]
jmp 0x41c955
mov ebp, dword [0x431098]
test byte ds:[ebp + 0xa], 1
je 0x41c950
mov eax, dword [0x4310a0]
jmp 0x41c955
mov eax, dword [0x4310c4]
cmp byte [0x431191], 2
jae 0x416bf5
sub eax, dword [0x431034]
jmp 0x41c9ba
mov eax, dword [0x4310c4]
xor edx, edx
xor ch, ch
mov ebp, dword [0x431098]
sub eax, dword ds:[ebp]
sbb edx, dword ds:[ebp + 4]
sbb ch, byte ds:[ebp + 8]
jp 0x41c98c
call fcn.0041d496
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 0x41c6a2
mov eax, dword [0x431098]
mov eax, dword [eax + 0x18]
jmp 0x41c96f
mov eax, dword [0x4310a4]
stosd dword es:[edi], eax
xor eax, eax
stosd dword es:[edi], eax
add edi, 0xc
jmp 0x41c6a2
call fcn.00416949
stosd dword es:[edi], eax
mov eax, edx
stosd dword es:[edi], eax
add edi, 0xc
jmp 0x41c6a2
or eax, eax
je 0x41c96a
cmp eax, 1
je 0x41c9b5
cmp eax, 2
je 0x41c9c6
cmp eax, 3
je 0x41c9ab
cmp eax, 4
je 0x41c93c
cmp eax, 5
je 0x41c91b
mov edx, 0x416b47
jmp 0x41ca0f
mov edx, 0x416bb2
jmp 0x41ca0f
mov edx, 0x416b5b
cmp word [0x431026], 1
ja 0x41ca20
or byte [0x431190], 0xff
or byte [0x431186], 0xff
and word [edi + 0xc], 0
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
add edi, 0xc
cmp dword [0x4310b0], 0
jne 0x41c6a2
mov eax, dword [0x431048]
mov dword [0x4310b0], eax
mov dword [0x4310b4], edx
mov dword [0x4310ac], ebx
jmp 0x41c6a2
xor ah, ah
mov ah, byte [ebx + 0xc]
mov al, byte [edi + 0xc]
or al, al
je 0x41ca86
or ah, ah
je 0x41ca7e
add ah, al
jne 0x41ca77
mov ecx, dword [edi + 0x10]
cmp ecx, dword [ebx + 0x10]
je 0x41ca86
call fcn.0041d4bd
jmp 0x41ca86
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 0x41caa0
call fcn.0041d496
or dx, dx
je 0x41c6a2
push esi
mov esi, ebx
mov cl, byte [edi + 0xa]
mov al, byte [edi + 8]
call fcn.0041cac8
mov cl, byte [edi + 0xb]
mov al, byte [edi + 9]
call fcn.0041cac8
pop esi
jmp 0x41c6a2
xor ah, ah
mov ah, byte [ebx + 0xc]
mov al, byte [edi + 0xc]
or al, al
je 0x41cb48
or ah, ah
je 0x41cb3e
cmp al, ah
jne 0x41cb37
xor ah, ah
mov ecx, dword [edi + 0x10]
cmp ecx, dword [ebx + 0x10]
je 0x41cb48
call fcn.0041d4bd
jmp 0x41cb48
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 0x41cb6b
cmp dword [0x4310b0], 0
jne 0x41cb6b
call fcn.0041d496
or dx, dx
je 0x41c6a2
push esi
mov esi, ebx
mov cl, byte [edi + 0xa]
mov al, byte [edi + 8]
call fcn.0041cb93
mov cl, byte [edi + 0xb]
mov al, byte [edi + 9]
call fcn.0041cb93
pop esi
jmp 0x41c6a2
or dx, dx
je 0x41cbc7
cmp word [ebx + 8], 0
jne 0x41cbc7
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 0x41cbb6
push esi
push edx
mov esi, ebx
xor bl, bl
cmp byte [esi + 0xd], 0
je 0x41cbf2
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 0x41ccf7
cmp byte [edi + 0xd], 0
je 0x41cc35
xor bl, 0xff
cmp byte [esi + 8], 0
je 0x41cc0a
neg byte [esi + 0xa]
jo 0x416b33
cmp byte [esi + 9], 0
je 0x41cc19
neg byte [esi + 0xb]
jo 0x416b33
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 0x41ccf7
cmp dword [esi + 4], 0
je 0x41cc47
cmp dword [edi + 4], 0
je 0x41cc47
jne 0x41ccf7
mov eax, dword [esi + 4]
mul dword [edi]
or edx, edx
jne 0x41ccf7
mov ecx, eax
mov eax, dword [esi]
mul dword [edi + 4]
or edx, edx
jne 0x41ccf7
add ecx, eax
jb 0x41ccf7
mov eax, dword [esi]
mul dword [edi]
add edx, ecx
jb 0x41ccf7
mov dword [esi], eax
mov dword [esi + 4], edx
or bl, bl
je 0x41cc95
not eax
not edx
add eax, 1
adc edx, 0
mov dword [esi], eax
mov dword [esi + 4], edx
or eax, edx
jne 0x41cc95
not bl
mov byte [esi + 0xd], bl
pop edx
or dx, dx
je 0x41ccf1
cmp word [edi + 8], 0
jne 0x416b47
cmp byte [esi + 8], 0
je 0x41cccd
call fcn.0041cd03
imul byte [esi + 0xa]
mov dl, ah
cbw
cmp ah, dl
jne 0x416b51
mov byte [esi + 0xa], al
or al, al
jne 0x41cccd
mov byte [esi + 8], al
cmp byte [esi + 9], 0
je 0x41ccf1
call fcn.0041cd03
imul byte [esi + 0xb]
mov dl, ah
cbw
cmp ah, dl
jne 0x416b51
mov byte [esi + 0xb], al
or al, al
jne 0x41ccf1
mov byte [esi + 9], al
pop esi
jmp 0x41c6a2
pop edx
pop esi
call fcn.0041d496
jmp 0x41c6a2
push esi
push edx
mov esi, ebx
call fcn.0041d0d9
pop edx
or dx, dx
je 0x41cd74
cmp byte [esi + 8], 0
je 0x41cd4f
call fcn.0041cd03
or al, al
je 0x416b51
mov al, byte [esi + 0xa]
cbw
idiv byte [edi]
or ah, ah
jne 0x416bf5
mov byte [esi + 0xa], al
cmp byte [esi + 9], 0
je 0x41cd74
call fcn.0041cd03
or al, al
je 0x416b51
mov al, byte [esi + 0xb]
cbw
idiv byte [edi]
or ah, ah
jne 0x416bf5
mov byte [esi + 0xb], al
pop esi
jmp 0x41c6a2
push esi
mov esi, ebx
call fcn.0041d0d9
mov dword [esi], eax
mov dword [esi + 4], edx
mov byte [esi + 0xd], bh
pop esi
jmp 0x41c6a2
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 0x41c6a2
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 0x41c6a2
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 0x41c6a2
mov byte [edi + 0xd], 0
not dword [edi]
not dword [edi + 4]
add dword [edi], 1
adc dword [edi + 4], 0
jb 0x41ce13
cmp byte [edi + 0xd], 0
jne 0x41ce5c
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
cmp dword [edi + 4], 0
jne 0x41ce13
movsx ecx, byte [ebx + 0xd]
xchg dword [edi], ecx
cmp ecx, 0x40
je 0x41ce19
ja 0x41ce13
cmp ecx, 0x20
jae 0x41ce31
shld dword [edi], edx, cl
shld edx, eax, cl
shl eax, cl
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x41ce46
cmp byte [ebx + 0xd], 0
jne 0x41ce52
movsx ecx, byte [ebx + 0xd]
cmp eax, ecx
jne 0x41ce52
cmp edx, ecx
jne 0x41ce52
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
jmp 0x41c6a2
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 0x41ce52
movsx eax, byte [ebx + 0xd]
cmp eax, dword [edi]
je 0x41c6a2
call fcn.0041d496
jmp 0x41c6a2
mov byte [edi + 0xd], 0
not dword [edi]
not dword [edi + 4]
add dword [edi], 1
adc dword [edi + 4], 0
jae 0x41ce71
dec dword [edi + 4]
cmp byte [edi + 0xd], 0
jne 0x41cdcf
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
cmp dword [edi + 4], 0
jne 0x41ceb9
mov ecx, dword [edi]
cmp ecx, 0x40
jae 0x41ceb9
push esi
movsx esi, byte [ebx + 0xd]
cmp ecx, 0x20
jae 0x41cea8
shrd eax, edx, cl
shrd edx, esi, cl
mov dword [ebx], eax
mov dword [ebx + 4], edx
pop esi
jmp 0x41c6a2
sub cl, 0x20
shrd edx, esi, cl
mov dword [ebx], edx
mov dword [ebx + 4], esi
pop esi
jmp 0x41c6a2
movsx eax, byte [ebx + 0xd]
mov dword [ebx], eax
mov dword [ebx + 4], eax
jmp 0x41c6a2
cmp word [edi + 8], 0
jne 0x416b33
cmp byte [edi + 0xc], 0
je 0x41cedd
call fcn.0041d4bd
not dword [edi]
not dword [edi + 4]
not byte [edi + 0xd]
add edi, 0x14
jmp 0x41c6a2
cmp word [edi + 8], 0
jne 0x416b33
cmp byte [edi + 0xc], 0
je 0x41cf03
call fcn.0041d4bd
xor ecx, ecx
bsf eax, dword [edi]
jne 0x41cf56
mov ecx, 0x20
bsf eax, dword [edi + 4]
jne 0x41cf56
cmp byte [edi + 0xd], 0
jne 0x41cf56
call fcn.0041d496
add edi, 0x14
jmp 0x41c6a2
cmp word [edi + 8], 0
jne 0x416b33
cmp byte [edi + 0xc], 0
je 0x41cf3e
call fcn.0041d4bd
cmp byte [edi + 0xd], 0
jne 0x41cf1b
mov ecx, 0x20
bsr eax, dword [edi + 4]
jne 0x41cf56
xor ecx, ecx
bsr eax, dword [edi]
je 0x41cf1b
add eax, ecx
xor edx, edx
mov dword [edi], eax
mov dword [edi + 4], edx
mov byte [edi + 0xd], dl
add edi, 0x14
jmp 0x41c6a2
cmp byte [edi + 8], 0
je 0x41cf79
neg byte [edi + 0xa]
jo 0x416b33
cmp byte [edi + 9], 0
je 0x41cf88
neg byte [edi + 0xb]
jo 0x416b33
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 0x41cfa8
call fcn.0041d496
add edi, 0x14
jmp 0x41c6a2
cmp word [edi + 8], 0
jne 0x416b33
mov al, byte [0x431191]
cmp al, 5
je 0x41d04b
cmp al, 4
je 0x41d067
cmp al, 3
jne 0x416b33
test dword [0x431108], 8
jne 0x41d022
mov al, 2
bt dword [0x43110c], 0
jb 0x41cff2
xor al, al
cmp byte [edi + 0xc], al
je 0x41cffc
call fcn.0041d4bd
mov byte [edi + 0xc], 0
mov eax, dword [0x431034]
mov eax, dword [eax + 0x34]
xor edx, edx
sub dword [edi], eax
sbb dword [edi + 4], edx
sbb byte [edi + 0xd], 0
jp 0x41d01a
call fcn.0041d496
add edi, 0x14
jmp 0x41c6a2
mov al, 4
bt dword [0x43110c], 0
jb 0x41d030
xor al, al
cmp byte [edi + 0xc], al
je 0x41d03a
call fcn.0041d4bd
mov byte [edi + 0xc], 0
mov eax, dword [0x431034]
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
jmp 0x41d00a
test dword [0x431108], 1
jne 0x41d07f
test dword [0x431108], 8
jne 0x416b33
mov dl, 5
cmp byte [edi + 0xc], 2
je 0x41d074
call fcn.0041d4bd
mov byte [edi + 0xc], dl
add edi, 0x14
jmp 0x41c6a2
xor dl, dl
test byte [edi + 0xc], 1
jne 0x41d06f
jmp 0x41d074
cmp word [edi + 8], 0
jne 0x416b33
cmp byte [0x431191], 5
jne 0x416b33
test dword [0x431108], 1
jne 0x416b33
mov dl, 6
mov dh, 2
test dword [0x431108], 8
je 0x41d0c3
mov dh, 4
mov eax, dword [edi]
or eax, dword [edi + 4]
jne 0x41d06f
cmp byte [edi + 0xc], dh
jne 0x41d06f
mov eax, dword [edi + 0x10]
cmp byte [eax], 0x80
jne 0x41d06f
jmp 0x41d074
inc esi
and word [edi + 8], 0
and word [edi + 0xc], 0
mov al, byte [0x431180]
cmp al, 2
je 0x41d316
cmp al, 4
je 0x41d3a5
test al, 0xf7
je 0x41d253
call fcn.0041d4bd
xor eax, eax
xor edx, edx
cmp word [esi + 8], 0x8000
je 0x41d305
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 0x41d293
add eax, 1
adc edx, 0
bt edx, 0x14
jae 0x41d293
and edx, 0xfffff
inc bx
shr edx, 1
rcr eax, 1
add bx, 0x3ff
cmp bx, 0x7ff
jge 0x416b51
cmp bx, 0
jg 0x41d2f6
or edx, 0x100000
mov cx, bx
neg cx
inc cx
cmp cx, 0x35
ja 0x416b51
cmp cx, 0x20
jb 0x41d2d3
sub cx, 0x20
mov eax, edx
xor edx, edx
shr eax, cl
jmp 0x41d2da
mov ebx, edx
shr edx, cl
shrd eax, ebx, cl
mov bx, 0
jae 0x41d2f6
add eax, 1
adc edx, 0
test edx, 0x100000
je 0x41d2f6
and edx, 0xfffff
inc bx
shl ebx, 0x14
or edx, ebx
jne 0x41d305
or eax, eax
je 0x416b51
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 0x41d390
mov bx, word [esi + 8]
mov ax, word [esi + 6]
shl ax, 1
shr ax, 6
jae 0x41d343
inc ax
bt ax, 0xa
jae 0x41d343
and ax, 0x3ff
inc bx
shr ax, 1
add bx, 0xf
cmp bx, 0x1f
jge 0x416b51
cmp bx, 0
jg 0x41d383
or ax, 0x400
mov cx, bx
neg cx
inc cx
cmp cx, 0xb
ja 0x416b51
xor bx, bx
shr ax, cl
jae 0x41d383
inc ax
test ax, 0x400
je 0x41d383
and ax, 0x3ff
inc bx
shl bx, 0xa
or ax, bx
je 0x416b51
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 0x41d41a
mov bx, word [esi + 8]
mov eax, dword [esi + 4]
shl eax, 1
shr eax, 9
jae 0x41d3cd
inc eax
bt eax, 0x17
jae 0x41d3cd
and eax, 0x7fffff
inc bx
shr eax, 1
add bx, 0x7f
cmp bx, 0xff
jge 0x416b51
cmp bx, 0
jg 0x41d40f
or eax, 0x800000
mov cx, bx
neg cx
inc cx
cmp cx, 0x18
ja 0x416b51
xor bx, bx
shr eax, cl
jae 0x41d40f
inc eax
test eax, 0x800000
je 0x41d40f
and eax, 0x7fffff
inc bx
shl ebx, 0x17
or eax, ebx
je 0x416b51
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 0x416b51
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