Function at 0x416ba0
Capabilities:
Encode data using xor
Encrypt data using twofish

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x25c
mov eax, dword [0x449044]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x449aa8], 0
push ebx
push esi
mov ebx, ecx
mov dword [ebp - 0x258], 0
push edi
mov dword [ebp - 0x250], ebx
je 0x416d2a
xor esi, esi
nop word [eax + eax]
mov ah, byte [esi + 0x444de0]
mov dh, byte [esi + 0x444ee0]
mov dl, ah
and dl, 2
mov byte [ebp - 0x23e], ah
neg dl
mov byte [ebp - 0x23c], dh
mov cl, ah
mov bl, ah
sbb dl, dl
mov bh, ah
and cl, 1
and dl, 0xb4
mov al, cl
mov ch, dh
neg al
sbb al, al
shr bl, 2
and al, 0x5a
shr bh, 1
xor bl, al
xor bh, ah
xor bl, dl
shr bh, 1
xor bl, ah
neg cl
mov byte [ebp - 0x23d], bl
mov bl, dh
sbb cl, cl
and cl, 0xb4
xor bh, cl
xor bh, al
mov al, dh
xor bh, dl
mov dl, dh
xor bh, ah
and dl, 2
neg dl
sbb dl, dl
and al, 1
mov cl, al
and dl, 0xb4
neg cl
sbb cl, cl
shr ch, 2
shr bl, 1
xor ch, dh
xor bl, dh
and cl, 0x5a
xor ch, dl
shr bl, 1
xor ch, cl
neg al
mov byte [ebp - 0x23b], ch
sbb al, al
and al, 0xb4
xor bl, al
xor bl, dh
xor bl, dl
mov dl, byte [ebp - 0x23e]
xor bl, cl
mov cl, byte [ebp - 0x23d]
mov byte [ebp - 0x23a], bl
mov byte [ebp - 0x239], bl
mov eax, dword [ebp - 0x23c]
mov byte [ebp - 0x23c], bh
mov byte [ebp - 0x23b], bh
mov byte [ebp - 0x23a], cl
mov byte [ebp - 0x239], dl
mov dword [esi*4 + 0x44afe0], eax
mov eax, dword [ebp - 0x23c]
mov byte [ebp - 0x23c], ch
mov byte [ebp - 0x23b], bl
mov byte [ebp - 0x23a], dh
mov byte [ebp - 0x239], bl
mov dword [esi*4 + 0x44b3e0], eax
mov eax, dword [ebp - 0x23c]
mov dword [esi*4 + 0x44b7e0], eax
mov byte [ebp - 0x23c], cl
mov byte [ebp - 0x23b], dl
mov byte [ebp - 0x23a], bh
mov byte [ebp - 0x239], cl
mov eax, dword [ebp - 0x23c]
mov dword [esi*4 + 0x44bbe0], eax
inc esi
cmp esi, 0x100
jl 0x416be0
mov ebx, dword [ebp - 0x250]
mov dword [0x449aa8], 0
mov eax, dword [ebx + 0x50]
xor edi, edi
lea eax, [eax*2 + 8]
mov dword [ebp - 0x248], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x25c], eax
add eax, 0x3f
cdq
and edx, 0x3f
lea esi, [edx + eax]
sar esi, 6
mov dword [ebp - 0x244], esi
test esi, esi
jle 0x416dc6
lea ecx, [ebp + esi*4 - 0x21c]
add esi, 0x1c
mov dword [ebp - 0x24c], ecx
lea eax, [ebx + esi*4]
lea esi, [ebx + 0x58]
mov dword [ebp - 0x23c], eax
mov ebx, ecx
nop word [eax + eax]
mov ecx, dword [esi - 4]
mov edx, dword [esi]
mov dword [ebp + edi*4 - 0x228], ecx
mov dword [ebp + edi*4 - 0x238], edx
call fcn.00416920
mov ecx, dword [ebp - 0x23c]
lea esi, [esi + 8]
inc edi
mov dword [ebx], eax
lea ebx, [ebx - 4]
mov dword [ecx], eax
sub ecx, 4
mov dword [ebp - 0x23c], ecx
cmp edi, dword [ebp - 0x244]
jl 0x416d80
mov ebx, dword [ebp - 0x250]
mov esi, dword [ebp - 0x244]
mov eax, dword [ebp - 0x248]
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
mov dword [ebp - 0x24c], ecx
test ecx, ecx
jle 0x4171c7
lea eax, [ebx + 0x88]
and esi, 3
xor ebx, ebx
mov dword [ebp - 0x248], eax
xor edi, edi
mov eax, ebx
mov dword [ebp - 0x23c], ebx
shr eax, 0x10
mov edx, ebx
mov dword [ebp - 0x244], eax
mov eax, esi
shr edx, 0x18
sub eax, 0
je 0x416e52
sub eax, 2
je 0x416e35
sub eax, 1
jne 0x416fb4
mov dl, byte [ebp - 0x239]
mov dh, bl
mov cl, byte [ebp - 0x23a]
mov ch, byte [ebp - 0x23b]
jmp 0x416e9a
mov al, byte [ebp - 0x23b]
mov byte [ebp - 0x23d], al
mov al, byte [ebp - 0x23c]
mov byte [ebp - 0x23e], al
jmp 0x416ef0
movzx eax, bl
mov dh, byte [eax + 0x444ee0]
movzx eax, byte [ebp - 0x23b]
xor dh, byte [ebp - 0x21c]
mov ch, byte [eax + 0x444de0]
movzx eax, byte [ebp - 0x23a]
xor ch, byte [ebp - 0x21b]
mov cl, byte [eax + 0x444de0]
movzx eax, byte [ebp - 0x239]
xor cl, byte [ebp - 0x21a]
mov dl, byte [eax + 0x444ee0]
xor dl, byte [ebp - 0x219]
movzx eax, dh
mov al, byte [eax + 0x444ee0]
xor al, byte [ebp - 0x220]
mov byte [ebp - 0x23e], al
movzx eax, ch
mov al, byte [eax + 0x444ee0]
xor al, byte [ebp - 0x21f]
mov byte [ebp - 0x23d], al
movzx eax, cl
mov cl, byte [eax + 0x444de0]
xor cl, byte [ebp - 0x21e]
movzx eax, dl
mov byte [ebp - 0x23a], cl
mov byte [ebp - 0x244], cl
mov al, byte [eax + 0x444de0]
xor al, byte [ebp - 0x21d]
mov dl, al
movzx eax, dl
movzx ecx, byte [eax + 0x444ee0]
mov eax, dword [ebp - 0x221]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x225]
movzx eax, al
movzx edx, byte [ecx + 0x444ee0]
xor edx, eax
movzx eax, byte [ebp - 0x23e]
movzx ecx, byte [eax + 0x444de0]
mov eax, dword [ebp - 0x224]
mov edi, dword [edx*4 + 0x44bbe0]
movzx eax, al
xor ecx, eax
movzx eax, byte [ebp - 0x228]
movzx ecx, byte [ecx + 0x444de0]
xor ecx, eax
movzx eax, byte [ebp - 0x23d]
xor edi, dword [ecx*4 + 0x44afe0]
movzx ecx, byte [eax + 0x444ee0]
mov eax, dword [ebp - 0x223]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x227]
movzx eax, al
movzx ecx, byte [ecx + 0x444de0]
xor ecx, eax
mov eax, dword [ebp - 0x244]
movzx eax, al
xor edi, dword [ecx*4 + 0x44b3e0]
movzx ecx, byte [eax + 0x444de0]
mov eax, dword [ebp - 0x222]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x226]
movzx eax, al
movzx ecx, byte [ecx + 0x444ee0]
xor ecx, eax
xor edi, dword [ecx*4 + 0x44b7e0]
lea ecx, [ebx + 0x1010101]
mov eax, ecx
mov dword [ebp - 0x23c], ecx
shr eax, 0x18
mov dword [ebp - 0x254], eax
mov eax, ecx
shr eax, 0x10
mov dword [ebp - 0x244], eax
mov eax, esi
sub eax, 0
je 0x41701c
sub eax, 2
je 0x417005
sub eax, 1
jne 0x417180
mov dl, byte [ebp - 0x239]
mov cl, byte [ebp - 0x23a]
mov ch, byte [ebp - 0x23b]
mov dh, byte [ebp - 0x23c]
jmp 0x417064
mov al, byte [ebp - 0x23b]
mov dh, byte [ebp - 0x23c]
mov byte [ebp - 0x23d], al
jmp 0x4170b8
movzx eax, cl
mov dh, byte [eax + 0x444ee0]
movzx eax, byte [ebp - 0x23b]
xor dh, byte [ebp - 0x22c]
mov ch, byte [eax + 0x444de0]
movzx eax, byte [ebp - 0x23a]
xor ch, byte [ebp - 0x22b]
mov cl, byte [eax + 0x444de0]
movzx eax, byte [ebp - 0x239]
xor cl, byte [ebp - 0x22a]
mov dl, byte [eax + 0x444ee0]
xor dl, byte [ebp - 0x229]
movzx eax, dh
mov dh, byte [eax + 0x444ee0]
xor dh, byte [ebp - 0x230]
movzx eax, ch
mov al, byte [eax + 0x444ee0]
xor al, byte [ebp - 0x22f]
mov byte [ebp - 0x23d], al
movzx eax, cl
mov cl, byte [eax + 0x444de0]
xor cl, byte [ebp - 0x22e]
movzx eax, dl
mov byte [ebp - 0x23a], cl
mov byte [ebp - 0x244], cl
mov al, byte [eax + 0x444de0]
xor al, byte [ebp - 0x22d]
mov byte [ebp - 0x254], al
movzx eax, dh
movzx ecx, byte [eax + 0x444de0]
mov eax, dword [ebp - 0x234]
movzx eax, al
xor ecx, eax
movzx eax, byte [ebp - 0x238]
movzx edx, byte [ecx + 0x444de0]
xor edx, eax
movzx eax, byte [ebp - 0x23d]
movzx ecx, byte [eax + 0x444ee0]
mov eax, dword [ebp - 0x233]
mov edx, dword [edx*4 + 0x44afe0]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x237]
movzx eax, al
movzx ecx, byte [ecx + 0x444de0]
xor ecx, eax
mov eax, dword [ebp - 0x244]
movzx eax, al
xor edx, dword [ecx*4 + 0x44b3e0]
movzx ecx, byte [eax + 0x444de0]
mov eax, dword [ebp - 0x232]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x236]
movzx eax, al
movzx ecx, byte [ecx + 0x444ee0]
xor ecx, eax
mov eax, dword [ebp - 0x254]
movzx eax, al
xor edx, dword [ecx*4 + 0x44b7e0]
movzx ecx, byte [eax + 0x444ee0]
mov eax, dword [ebp - 0x231]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x235]
movzx eax, al
movzx ecx, byte [ecx + 0x444ee0]
xor ecx, eax
xor edx, dword [ecx*4 + 0x44bbe0]
jmp 0x417186
mov edx, dword [ebp - 0x258]
mov ecx, dword [ebp - 0x248]
add ebx, 0x2020202
rol edx, 8
lea eax, [edx + edi]
mov dword [ecx - 4], eax
lea edx, [edi + edx*2]
mov eax, edx
mov dword [ebp - 0x258], edx
rol eax, 9
mov dword [ecx], eax
add ecx, 8
sub dword [ebp - 0x24c], 1
mov dword [ebp - 0x248], ecx
jne 0x416df4
mov ebx, dword [ebp - 0x250]
mov eax, dword [ebp - 0x25c]
sub eax, 0x80
je 0x417770
sub eax, 0x40
je 0x41754e
sub eax, 0x40
jne 0x417934
push dword [ebp - 0x20c]
mov edx, 0x444ee0
lea ecx, [ebp - 0x204]
call fcn.00416a70
add esp, 4
xor ecx, ecx
nop word [eax + eax]
movzx eax, byte [ebp + ecx - 0x204]
mov al, byte [eax + 0x444ee0]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp + ecx - 0x203]
mov al, byte [eax + 0x444ee0]
mov byte [ebp + ecx - 0x103], al
add ecx, 2
cmp ecx, 0x100
jl 0x417210
push dword [ebp - 0x210]
lea edx, [ebp - 0x104]
mov ecx, edx
call fcn.00416a70
movzx esi, byte [ebp - 0x218]
lea edx, [ebx + 0x12c]
movzx edi, byte [ebp - 0x214]
add esp, 4
xor ecx, ecx
movzx eax, byte [ebp + ecx - 0x104]
lea edx, [edx + 0x10]
movzx eax, byte [eax + 0x444de0]
xor eax, edi
movzx eax, byte [eax + 0x444de0]
xor eax, esi
mov eax, dword [eax*4 + 0x44afe0]
mov dword [edx - 0x18], eax
movzx eax, byte [ebp + ecx - 0x103]
add ecx, 2
movzx eax, byte [eax + 0x444de0]
xor eax, edi
movzx eax, byte [eax + 0x444de0]
xor eax, esi
mov eax, dword [eax*4 + 0x44afe0]
mov dword [edx - 0x10], eax
cmp ecx, 0x100
jl 0x417271
push dword [ebp - 0x20b]
mov edx, 0x444de0
lea ecx, [ebp - 0x204]
call fcn.00416a70
add esp, 4
xor ecx, ecx
movzx eax, byte [ebp + ecx - 0x204]
mov al, byte [eax + 0x444ee0]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp + ecx - 0x203]
mov al, byte [eax + 0x444ee0]
mov byte [ebp + ecx - 0x103], al
add ecx, 2
cmp ecx, 0x100
jl 0x4172e2
push dword [ebp - 0x20f]
lea edx, [ebp - 0x104]
mov ecx, edx
call fcn.00416a70
movzx edx, byte [ebp - 0x217]
lea esi, [ebx + 0x130]
movzx edi, byte [ebp - 0x213]
add esp, 4
xor ecx, ecx
movzx eax, byte [ebp + ecx - 0x104]
lea esi, [esi + 0x10]
movzx eax, byte [eax + 0x444ee0]
xor eax, edi
movzx eax, byte [eax + 0x444de0]
xor eax, edx
mov eax, dword [eax*4 + 0x44b3e0]
mov dword [esi - 0x18], eax
movzx eax, byte [ebp + ecx - 0x103]
add ecx, 2
movzx eax, byte [eax + 0x444ee0]
xor eax, edi
movzx eax, byte [eax + 0x444de0]
xor eax, edx
mov eax, dword [eax*4 + 0x44b3e0]
mov dword [esi - 0x10], eax
cmp ecx, 0x100
jl 0x417343
push dword [ebp - 0x20a]
mov edx, 0x444de0
lea ecx, [ebp - 0x204]
call fcn.00416a70
add esp, 4
xor ecx, ecx
nop dword [eax]
nop dword [eax + eax]
movzx eax, byte [ebp + ecx - 0x204]
mov al, byte [eax + 0x444de0]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp + ecx - 0x203]
mov al, byte [eax + 0x444de0]
mov byte [ebp + ecx - 0x103], al
add ecx, 2
cmp ecx, 0x100
jl 0x4173c0
push dword [ebp - 0x20e]
lea edx, [ebp - 0x104]
mov ecx, edx
call fcn.00416a70
movzx edi, byte [ebp - 0x216]
lea esi, [ebx + 0x92c]
movzx edx, byte [ebp - 0x212]
add esp, 4
xor ecx, ecx
movzx eax, byte [ebp + ecx - 0x104]
lea esi, [esi + 0x10]
movzx eax, byte [eax + 0x444de0]
xor eax, edx
movzx eax, byte [eax + 0x444ee0]
xor eax, edi
mov eax, dword [eax*4 + 0x44b7e0]
mov dword [esi - 0x18], eax
movzx eax, byte [ebp + ecx - 0x103]
add ecx, 2
movzx eax, byte [eax + 0x444de0]
xor eax, edx
movzx eax, byte [eax + 0x444ee0]
xor eax, edi
mov eax, dword [eax*4 + 0x44b7e0]
mov dword [esi - 0x10], eax
cmp ecx, 0x100
jl 0x417421
push dword [ebp - 0x209]
mov edx, 0x444ee0
lea ecx, [ebp - 0x204]
call fcn.00416a70
add esp, 4
xor ecx, ecx
movzx eax, byte [ebp + ecx - 0x204]
mov al, byte [eax + 0x444de0]
mov byte [ebp + ecx - 0x104], al
movzx eax, byte [ebp + ecx - 0x203]
mov al, byte [eax + 0x444de0]
mov byte [ebp + ecx - 0x103], al
add ecx, 2
cmp ecx, 0x100
jl 0x417492
push dword [ebp - 0x20d]
lea edx, [ebp - 0x104]
mov ecx, edx
call fcn.00416a70
movzx esi, byte [ebp - 0x215]
lea edx, [ebx + 0x930]
movzx edi, byte [ebp - 0x211]
add esp, 4
xor ecx, ecx
movzx eax, byte [ebp + ecx - 0x104]
lea edx, [edx + 0x10]
movzx eax, byte [eax + 0x444ee0]
xor eax, edi
movzx eax, byte [eax + 0x444ee0]
xor eax, esi
mov eax, dword [eax*4 + 0x44bbe0]
mov dword [edx - 0x18], eax
movzx eax, byte [ebp + ecx - 0x103]
add ecx, 2
movzx eax, byte [eax + 0x444ee0]
xor eax, edi
movzx eax, byte [eax + 0x444ee0]
xor eax, esi
mov eax, dword [eax*4 + 0x44bbe0]
mov dword [edx - 0x10], eax
cmp ecx, 0x100
jl 0x4174f3
jmp 0x417934
push dword [ebp - 0x210]
mov edx, 0x444ee0
lea ecx, [ebp - 0x104]
call fcn.00416a70
movzx esi, byte [ebp - 0x218]
lea edx, [ebx + 0x12c]
movzx edi, byte [ebp - 0x214]
add esp, 4
xor ecx, ecx
nop dword [eax]
movzx eax, byte [ebp + ecx - 0x104]
lea edx, [edx + 0x10]
movzx eax, byte [eax + 0x444de0]
xor eax, edi
movzx eax, byte [eax + 0x444de0]
xor eax, esi
mov eax, dword [eax*4 + 0x44afe0]
mov dword [edx - 0x18], eax
movzx eax, byte [ebp + ecx - 0x103]
add ecx, 2
movzx eax, byte [eax + 0x444de0]
xor eax, edi
movzx eax, byte [eax + 0x444de0]
xor eax, esi
mov eax, dword [eax*4 + 0x44afe0]
mov dword [edx - 0x10], eax
cmp ecx, 0x100
jl 0x417580
push dword [ebp - 0x20f]
mov edx, 0x444ee0
lea ecx, [ebp - 0x104]
call fcn.00416a70
movzx esi, byte [ebp - 0x217]
lea edx, [ebx + 0x130]
movzx edi, byte [ebp - 0x213]
add esp, 4
xor ecx, ecx
movzx eax, byte [ebp + ecx - 0x104]
lea edx, [edx + 0x10]
movzx eax, byte [eax + 0x444ee0]
xor eax, edi
movzx eax, byte [eax + 0x444de0]
xor eax, esi
mov eax, dword [eax*4 + 0x44b3e0]
mov dword [edx - 0x18], eax
movzx eax, byte [ebp + ecx - 0x103]
add ecx, 2
movzx eax, byte [eax + 0x444ee0]
xor eax, edi
movzx eax, byte [eax + 0x444de0]
xor eax, esi
mov eax, dword [eax*4 + 0x44b3e0]
mov dword [edx - 0x10], eax
cmp ecx, 0x100
jl 0x417605
push dword [ebp - 0x20e]
mov edx, 0x444de0
lea ecx, [ebp - 0x104]
call fcn.00416a70
movzx esi, byte [ebp - 0x216]
lea edx, [ebx + 0x92c]
movzx edi, byte [ebp - 0x212]
add esp, 4
xor ecx, ecx
nop word [eax + eax]
movzx eax, byte [ebp + ecx - 0x104]
lea edx, [edx + 0x10]
movzx eax, byte [eax + 0x444de0]
xor eax, edi
movzx eax, byte [eax + 0x444ee0]
xor eax, esi
mov eax, dword [eax*4 + 0x44b7e0]
mov dword [edx - 0x18], eax
movzx eax, byte [ebp + ecx - 0x103]
add ecx, 2
movzx eax, byte [eax + 0x444de0]
xor eax, edi
movzx eax, byte [eax + 0x444ee0]
xor eax, esi
mov eax, dword [eax*4 + 0x44b7e0]
mov dword [edx - 0x10], eax
cmp ecx, 0x100
jl 0x417690
push dword [ebp - 0x20d]
mov edx, 0x444de0
lea ecx, [ebp - 0x104]
call fcn.00416a70
movzx esi, byte [ebp - 0x215]
lea edx, [ebx + 0x930]
movzx edi, byte [ebp - 0x211]
add esp, 4
xor ecx, ecx
movzx eax, byte [ebp + ecx - 0x104]
lea edx, [edx + 0x10]
movzx eax, byte [eax + 0x444ee0]
xor eax, edi
movzx eax, byte [eax + 0x444ee0]
xor eax, esi
mov eax, dword [eax*4 + 0x44bbe0]
mov dword [edx - 0x18], eax
movzx eax, byte [ebp + ecx - 0x103]
add ecx, 2
movzx eax, byte [eax + 0x444ee0]
xor eax, edi
movzx eax, byte [eax + 0x444ee0]
xor eax, esi
mov eax, dword [eax*4 + 0x44bbe0]
mov dword [edx - 0x10], eax
cmp ecx, 0x100
jl 0x417715
jmp 0x417934
push dword [ebp - 0x214]
mov edx, 0x444de0
lea ecx, [ebp - 0x104]
call fcn.00416a70
movzx esi, byte [ebp - 0x218]
lea edx, [ebx + 0x12c]
add esp, 4
xor ecx, ecx
nop dword [eax + eax]
movzx eax, byte [ebp + ecx - 0x104]
lea edx, [edx + 0x10]
movzx eax, byte [eax + 0x444de0]
xor eax, esi
mov eax, dword [eax*4 + 0x44afe0]
mov dword [edx - 0x18], eax
movzx eax, byte [ebp + ecx - 0x103]
add ecx, 2
movzx eax, byte [eax + 0x444de0]
xor eax, esi
mov eax, dword [eax*4 + 0x44afe0]
mov dword [edx - 0x10], eax
cmp ecx, 0x100
jl 0x4177a0
push dword [ebp - 0x213]
mov edx, 0x444ee0
lea ecx, [ebp - 0x104]
call fcn.00416a70
movzx esi, byte [ebp - 0x217]
lea edx, [ebx + 0x130]
add esp, 4
xor ecx, ecx
nop dword [eax]
movzx eax, byte [ebp + ecx - 0x104]
lea edx, [edx + 0x10]
movzx eax, byte [eax + 0x444de0]
xor eax, esi
mov eax, dword [eax*4 + 0x44b3e0]
mov dword [edx - 0x18], eax
movzx eax, byte [ebp + ecx - 0x103]
add ecx, 2
movzx eax, byte [eax + 0x444de0]
xor eax, esi
mov eax, dword [eax*4 + 0x44b3e0]
mov dword [edx - 0x10], eax
cmp ecx, 0x100
jl 0x417810
push dword [ebp - 0x212]
mov edx, 0x444de0
lea ecx, [ebp - 0x104]
call fcn.00416a70
movzx esi, byte [ebp - 0x216]
lea edx, [ebx + 0x92c]
add esp, 4
xor ecx, ecx
nop dword [eax]
movzx eax, byte [ebp + ecx - 0x104]
lea edx, [edx + 0x10]
movzx eax, byte [eax + 0x444ee0]
xor eax, esi
mov eax, dword [eax*4 + 0x44b7e0]
mov dword [edx - 0x18], eax
movzx eax, byte [ebp + ecx - 0x103]
add ecx, 2
movzx eax, byte [eax + 0x444ee0]
xor eax, esi
mov eax, dword [eax*4 + 0x44b7e0]
mov dword [edx - 0x10], eax
cmp ecx, 0x100
jl 0x417880
push dword [ebp - 0x211]
mov edx, 0x444ee0
lea ecx, [ebp - 0x104]
call fcn.00416a70
movzx esi, byte [ebp - 0x215]
lea edx, [ebx + 0x930]
add esp, 4
xor ecx, ecx
nop dword [eax]
movzx eax, byte [ebp + ecx - 0x104]
lea edx, [edx + 0x10]
movzx eax, byte [eax + 0x444ee0]
xor eax, esi
mov eax, dword [eax*4 + 0x44bbe0]
mov dword [edx - 0x18], eax
movzx eax, byte [ebp + ecx - 0x103]
add ecx, 2
movzx eax, byte [eax + 0x444ee0]
xor eax, esi
mov eax, dword [eax*4 + 0x44bbe0]
mov dword [edx - 0x10], eax
cmp ecx, 0x100
jl 0x4178f0
cmp byte [ebx], 0
jne 0x417971
mov eax, dword [ebx + 0x50]
lea esi, [ebx + 0xa4]
lea edi, [eax*8 + 0x9c]
add edi, ebx
cmp esi, edi
jae 0x41796e
nop
mov eax, dword [edi]
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esi], eax
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
add esi, 8
mov dword [edi], edx
mov dword [edi + 4], ecx
sub edi, 8
cmp esi, edi
jb 0x417950
mov byte [ebx], 0
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00419b04
mov esp, ebp
pop ebp
ret