Function at 0x438420
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x300
xor eax, eax
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0xe4], ecx
mov edx, eax
mov ecx, eax
mov dword [ebp - 0x54], 0x38
mov dword [ebp - 0x50], 0x52
mov dword [ebp - 0x4c], 0xffffff76
sub ecx, dword [ebp + edx*4 - 0x54]
inc edx
cmp edx, 3
jl 0x438450
push esi
push edi
mov esi, 0x4031d4
mov dword [ebp - 0xd4], ecx
lea edi, [ebp - 0x28]
mov dword [ebp - 0x60], 0x72ab9f83
push 0xa
pop ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xd0], ecx
mov byte [ebp - 0x4e], cl
mov ecx, eax
mov dword [ebp - 0x5c], 0xd3482dcd
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x58], 0xfce6639f
mov dword [ebp - 0x54], 0xbc2083d6
mov word [ebp - 0x50], 0x7b08
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x4d], 0x5a0b2da6
mov byte [ebp - 0x49], 0x43
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, dword [0x44a7c4]
sub esi, 0x64cde72f
mov dword [ebp - 0x10], esi
mov byte [ebp + ecx - 0x1e8], cl
inc ecx
cmp ecx, 0x100
jb 0x4384b9
mov edi, eax
mov esi, eax
mov dl, byte [ebp + edi - 0x1e8]
mov eax, edi
and eax, 0xf
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x28]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x1e8]
mov byte [ebp + edi - 0x1e8], al
inc edi
mov byte [ebp + esi - 0x1e8], dl
cmp edi, 0x100
jb 0x4384cd
mov esi, dword [ebp - 0x10]
xor eax, eax
mov dword [ebp - 0xc], eax
mov ecx, eax
mov edi, eax
lea eax, [ecx + 1]
xor esi, 0x8e82133c
movzx eax, al
mov dword [ebp - 8], eax
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 8]
mov cl, byte [ebp + eax - 0x1e8]
mov eax, dword [ebp - 0xc]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x1e8]
mov byte [ebp + esi - 0x1e8], al
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x1e8], cl
mov ecx, esi
mov esi, dword [ebp - 0x10]
movzx eax, byte [ebp + ecx - 0x1e8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1e8]
xor al, byte [ebp + edi - 0x60]
mov byte [ebp + edi - 0x220], al
inc edi
cmp edi, 0x18
jb 0x438512
xor eax, eax
mov ecx, eax
inc ecx
cmp ecx, 0x1b78
je 0x438595
cmp byte [ecx + 0x4039a8], al
jne 0x438582
jmp 0x43859b
and esi, 0x8d1d7f9f
xor esi, 0xffecb7b5
mov byte [ebp - 0x208], al
push 5
pop ecx
or esi, 0xb32896b0
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x10], esi
lea edi, [ebp - 0x290]
mov byte [ebp - 0x8f], cl
mov esi, 0x4038b4
push 0xd
pop ecx
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xcc], 0xb0768c32
mov ecx, eax
mov dword [ebp - 0xc8], 0x30f79bba
mov dword [ebp - 0xc4], 0x8b6fcf9f
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0xc0], 0x8ec2c59f
mov edi, eax
mov dword [ebp - 0xbc], 0xcd9051f4
mov dword [ebp - 0xb8], 0xbb179bd6
mov dword [ebp - 0xb4], 0xe0ad3d9c
mov dword [ebp - 0xb0], 0xfd6c5b8a
mov dword [ebp - 0xac], 0xa9b1baa5
mov dword [ebp - 0xa8], 0x59be769f
mov dword [ebp - 0xa4], 0x43bb695d
mov dword [ebp - 0xa0], 0x6ef6d6c1
mov dword [ebp - 0x9c], 0xe450f7cd
mov dword [ebp - 0x98], 0x6bccccb1
mov dword [ebp - 0x94], 0xbe4d8e7
mov byte [ebp - 0x90], 0x6a
mov dword [ebp - 0x8e], 0xc6079ed9
mov dword [ebp - 0x8a], 0x7e9aa3b5
mov dword [ebp - 0x86], 0xcb5d4b76
mov dword [ebp - 0x82], 0x86753fa9
mov dword [ebp - 0x7e], 0xf8fcbc15
mov dword [ebp - 0x7a], 0x19e07874
mov dword [ebp - 0x76], 0x41d53c89
mov dword [ebp - 0x72], 0x9e099703
mov dword [ebp - 0x6e], 0x9349ee2f
mov dword [ebp - 0x6a], 0x1f5824e5
mov dword [ebp - 0x66], 0x3b70d0a7
mov word [ebp - 0x62], 0x126a
mov byte [ebp + ecx - 0x1e8], cl
inc ecx
cmp ecx, 0x100
jb 0x4386cd
mov esi, eax
xor edx, edx
mov dword [ebp - 0x14], 0x34
mov eax, esi
mov cl, byte [ebp + esi - 0x1e8]
div dword [ebp - 0x14]
mov byte [ebp - 1], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x290]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1e8]
mov byte [ebp + esi - 0x1e8], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x1e8], al
cmp esi, 0x100
jb 0x4386df
mov esi, dword [ebp - 0x10]
xor eax, eax
mov dword [ebp - 0xc], eax
mov ecx, eax
mov edi, eax
lea eax, [ecx + 1]
xor esi, 0x2e1656b
movzx eax, al
sub esi, 0x33010c9
mov dword [ebp - 8], eax
mov cl, byte [ebp + eax - 0x1e8]
mov eax, dword [ebp - 0xc]
movzx edx, cl
add eax, edx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 8]
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x1e8]
mov byte [ebp + edx - 0x1e8], al
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x1e8], cl
mov ecx, edx
movzx eax, byte [ebp + ecx - 0x1e8]
add eax, dword [ebp - 0x14]
movzx eax, al
mov al, byte [ebp + eax - 0x1e8]
xor al, byte [ebp + edi - 0xcc]
mov byte [ebp + edi - 0x300], al
inc edi
cmp edi, 0x6c
jb 0x438736
push 5
pop eax
mov byte [ebp - 0x19], al
xor ecx, ecx
mov eax, dword [0x4038ec]
mov dword [ebp - 0x50], eax
mov ax, word [0x4038f0]
mov word [ebp - 0x4c], ax
mov eax, ecx
mov byte [ebp - 0x294], cl
mov dword [ebp - 8], ecx
mov ecx, 0x4039a8
mov dword [ebp - 0x2c], 0x5848a338
mov dword [ebp - 0x28], 0x3fe640ae
mov dword [ebp - 0x24], 0x3802be91
mov dword [ebp - 0x20], 0x74c69d5a
mov word [ebp - 0x1c], 0xe171
mov byte [ebp - 0x1a], 0x33
mov dword [ebp - 0x18], 0x2bd5d424
mov dword [ebp - 0x14], ecx
push 0x6b
mov dword [ebp - 0xc], 0x228a
mov edx, ecx
pop edi
add dword [ebp - 0xc], edi
inc edx
cmp dword [ebp - 0xc], 0x13e6
ja 0x43882b
movsx edi, byte [edx]
test edi, edi
jne 0x43880f
or esi, 0x22430a64
jmp 0x438837
sub esi, 0x58deccae
imul esi, esi, 0xe2410d8e
or esi, 0x64ca0452
mov byte [ebp + eax - 0x1e8], al
inc eax
cmp eax, 0x100
jb 0x438803
xor ecx, ecx
mov eax, ecx
inc eax
cmp eax, 0x2041
je 0x43886f
cmp byte [eax + 0x4039a8], cl
jne 0x438850
cmp eax, 0x1e2a
jg 0x438887
or esi, 0xfd112e17
jmp 0x438898
push 0x403a00
mov edx, 0x44a7a0
call fcn.00438385
pop ecx
sub esi, 0x7560dd8a
xor ecx, ecx
push esi
push ecx
push ecx
call fcn.0043840e
add esp, 0xc
and esi, 0x425c787e
or esi, 0xf8bf8ec5
mov edi, ecx
mov dword [ebp - 0x10], esi
xor edx, edx
mov cl, byte [ebp + edi - 0x1e8]
mov eax, edi
mov byte [ebp - 1], cl
div dword [ebp - 0x30]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x50]
add eax, dword [ebp - 8]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 8], ecx
mov al, byte [ebp + ecx - 0x1e8]
mov byte [ebp + edi - 0x1e8], al
inc edi
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x1e8], al
cmp edi, 0x100
jb 0x4388a3
xor eax, eax
mov dword [ebp - 0xc], eax
mov esi, eax
mov edi, eax
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [ebp - 0xc]
mov cl, byte [ebp + esi - 0x1e8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x1e8]
mov byte [ebp + esi - 0x1e8], al
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x1e8], cl
movzx eax, byte [ebp + esi - 0x1e8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1e8]
xor al, byte [ebp + edi - 0x2c]
mov byte [ebp + edi - 0x23c], al
inc edi
cmp edi, 0x18
jb 0x4388f1
mov eax, dword [0x40310c]
xor ecx, ecx
mov esi, dword [ebp - 0x10]
mov edi, ecx
mov dword [ebp - 0x50], eax
mov edx, 0x4039a8
mov ax, word [0x403110]
mov word [ebp - 0x4c], ax
mov al, 0x6b
mov byte [ebp - 0x224], cl
mov dword [ebp - 0x2c], 0xa3af917e
mov dword [ebp - 0x28], 0x541c13e1
mov dword [ebp - 0x24], 0xe7f0e2b3
mov dword [ebp - 0x20], 0xa1ac93c5
mov dword [ebp - 0x1c], 0xa79cf744
mov dword [ebp - 0x18], 0xfe372eb9
sub al, 0x30
cmp al, 9
ja 0x4389a8
inc edx
mov al, byte [edx]
test al, al
jne 0x438999
jmp 0x4389ae
sub esi, 0x672af2ca
imul eax, esi, 0xaddd5d95
push eax
push ecx
push ecx
mov dword [ebp - 8], eax
call fcn.0043840e
add esp, 0xc
mov eax, ecx
mov byte [ebp + eax - 0x1e8], al
inc eax
cmp eax, 0x100
jb 0x4389c4
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x1e8]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x30]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x50]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1e8]
mov byte [ebp + esi - 0x1e8], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x1e8], al
cmp esi, 0x100
jb 0x4389d5
xor eax, eax
mov dword [ebp - 0xc], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0xc]
mov cl, byte [ebp + edi - 0x1e8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x1e8]
mov byte [ebp + edi - 0x1e8], al
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x1e8], cl
movzx eax, byte [ebp + edi - 0x1e8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1e8]
xor al, byte [ebp + esi - 0x2c]
mov byte [ebp + esi - 0x258], al
inc esi
cmp esi, 0x18
jb 0x438a1f
mov esi, 0x4020d0
mov dword [ebp - 0x10], 0xff640cf4
lea edi, [ebp - 0x54]
xor eax, eax
mov byte [ebp - 0x240], al
mov ecx, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, eax
mov byte [ebp + ecx - 0x1e8], cl
inc ecx
cmp ecx, 0x100
jb 0x438a97
movzx ecx, byte [0x44a7a0]
mov edx, 0xf06
test ecx, ecx
je 0x438ad2
mov esi, 0x44a7a0
add edx, ecx
inc esi
cmp edx, 0x1041
ja 0x438bed
movzx ecx, byte [esi]
test ecx, ecx
jne 0x438abc
mov ecx, dword [ebp - 8]
add ecx, 0xea7484f2
mov esi, eax
xor ecx, 0x65f05dd7
mov dword [ebp - 0x30], ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x1e8]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0xd0]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x54]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1e8]
mov byte [ebp + esi - 0x1e8], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x1e8], al
cmp esi, 0x100
jb 0x438ae6
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x1e8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x1e8]
mov byte [ebp + edi - 0x1e8], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x1e8], cl
movzx eax, byte [ebp + edi - 0x1e8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1e8]
xor al, byte [ebp + esi - 0x10]
mov byte [ebp + esi - 0x50], al
inc esi
cmp esi, 4
jb 0x438b33
mov dword [ebp - 0x24], 0x10
xor eax, eax
mov dword [ebp - 0x20], 0x33
xorps xmm2, xmm2
mov dword [ebp - 0x1c], 0x4a
mov dword [ebp - 0x18], 0xffffff1b
movups xmm1, xmmword [ebp - 0x24]
mov byte [ebp - 0x4c], al
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
add ecx, 0x58
mov dword [ebp - 0xd0], ecx
mov ecx, eax
inc ecx
cmp ecx, 0x8de
jg 0x438bfb
cmp byte [ecx + 0x403998], al
jne 0x438bd7
mov ecx, dword [ebp - 0x30]
jmp 0x438c04
mov ecx, dword [ebp - 8]
xor ecx, 0xc5af22d0
jmp 0x438ad5
mov ecx, dword [ebp - 0x30]
or ecx, 0x372e912a
mov dword [ebp - 0x24], 0x28
movaps xmm1, xmm2
mov dword [ebp - 0x20], 0x44
xor ecx, 0xbfab3798
mov dword [ebp - 0x1c], 0x31
mov dword [ebp - 0x18], 0xffffff63
movups xmm0, xmmword [ebp - 0x24]
mov dword [0x44a7c4], ecx
push 5
psubd xmm1, xmm0
mov dword [ebp - 0x20], 0x2c
movaps xmm0, xmm1
mov dword [ebp - 0x1c], 9
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x18], 0xffffff86
movups xmm0, xmm1
mov dword [ebp - 0xdc], 0x11
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0xd8], 0xffffffd9
pop ecx
mov dword [ebp - 0x24], ecx
movups xmm0, xmmword [ebp - 0x24]
mov dword [ebp - 0x24], 0x51
movd dword [ebp - 8], xmm1
movaps xmm1, xmm2
paddd xmm1, xmm0
mov dword [ebp - 0x20], 0x52
movaps xmm0, xmm1
mov dword [ebp - 0x1c], 0x36
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x18], 0xfffffef8
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x24]
push 0x3e
movd ecx, xmm1
paddd xmm2, xmm0
movaps xmm0, xmm2
psrldq xmm0, 8
add ecx, 0x40
paddd xmm2, xmm0
mov dword [ebp - 0x10], ecx
movups xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd ecx, xmm2
add ecx, 0x2f
mov dword [ebp - 0xe8], ecx
pop ecx
add ecx, dword [ebp + eax*4 - 0xdc]
inc eax
cmp eax, 2
jl 0x438cfc
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xd8], ecx
lea ecx, [ebp - 0x220]
mov dword [ebp - 0xc], eax
call fcn.004342df
lea ecx, [ebp - 0x300]
mov esi, eax
call fcn.004342df
lea ecx, [ebp - 0x23c]
mov edi, eax
call fcn.004342df
push eax
push edi
push esi
push dword [ebp + 0x10]
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x30], eax
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x258]
call fcn.0041d4c4
call eax
add esp, 0x10
push 0x6b
pop ecx
sub cl, 0x30
cmp cl, 9
ja 0x438d81
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
mov al, byte [eax]
mov cl, al
test al, al
jne 0x438d63
mov eax, dword [0x44a7c4]
jmp 0x438d8b
mov eax, dword [0x44a7c4]
and eax, 0xd6165a80
xor eax, 0xa8107baa
push eax
push ecx
push ecx
mov dword [0x44a7c4], eax
call fcn.0043840e
mov ecx, esi
call fcn.004348b9
push eax
push dword [ebp - 0xd0]
push esi
call fcn.0043423a
mov ecx, edi
call fcn.004348b9
push eax
push dword [ebp - 8]
push edi
call fcn.0043423a
sub dword [0x44a7c4], 0x4f57ffcb
mov ecx, dword [ebp - 0x30]
call fcn.004348b9
push eax
push dword [ebp - 0x10]
push ecx
call fcn.0043423a
add esp, 0x30
mov ecx, esi
call fcn.0041d467
mov ecx, edi
call fcn.0041d467
mov ecx, dword [ebp - 0x30]
call fcn.0041d467
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
call fcn.00434d6a
cmp dword [ebp + 0x14], 0
lea edi, [ebp - 0x24]
je 0x439007
mov eax, dword [0x44a7c4]
mov esi, 0x40231c
xor eax, 0xc00037ec
mov dword [ebp - 0x48], 0xa5c6469c
mov dword [ebp + 0x14], eax
xor eax, eax
mov dword [ebp - 0x44], 0x29a4fe8f
mov ecx, eax
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x40], 0xdc4840c6
mov dword [ebp - 0x3c], 0xc451b34c
mov dword [ebp - 0x38], 0xbff3064b
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x34], 0xc62ef7bf
mov dword [ebp - 0x14], eax
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebp + ecx - 0x1e8], cl
inc ecx
cmp ecx, 0x100
jb 0x438e58
mov esi, dword [ebp + 0x14]
mov edi, eax
push 0xe
pop ecx
mov al, byte [ebp + edi - 0x1e8]
xor edx, edx
mov byte [ebp + 0x17], al
mov eax, edi
div ecx
movzx ecx, byte [ebp + 0x17]
push 0x50
mov dword [ebp - 8], 0xa4e
movzx eax, byte [ebp + edx - 0x24]
add eax, dword [ebp - 0x14]
add ecx, eax
mov eax, 0x403a00
movzx ecx, cl
mov dword [ebp - 0x14], ecx
pop edx
add dword [ebp - 8], edx
lea eax, [eax + 2]
cmp dword [ebp - 8], 0x120e
ja 0x438ebb
movzx edx, word [eax]
test edx, edx
jne 0x438ea3
jmp 0x438ecc
push esi
push ecx
push ecx
call fcn.0043840e
add esp, 0xc
imul esi, esi, 0x56b5c056
imul esi, esi, 0x73f55a2d
and esi, 0xcf17b64f
push esi
push ecx
push ecx
call fcn.0043840e
mov al, byte [ebp + ecx - 0x1e8]
add esp, 0xc
mov byte [ebp + edi - 0x1e8], al
inc edi
mov al, byte [ebp + 0x17]
mov byte [ebp + ecx - 0x1e8], al
push 0xe
pop ecx
cmp edi, 0x100
jb 0x438e70
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov edx, ecx
mov edi, ecx
lea eax, [edx + 1]
movzx edx, al
mov dword [ebp - 8], edx
mov al, byte [ebp + edx - 0x1e8]
mov byte [ebp + 0x17], al
movzx eax, al
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x14]
cmp byte [0x44a7a0], 0
movzx eax, al
mov dword [ebp - 0x10], eax
mov eax, ecx
je 0x438f72
inc eax
cmp eax, 0xfd9
jg 0x438f57
cmp byte [eax + 0x44a7a0], 0
jne 0x438f44
jmp 0x438f72
push 0x403a00
mov edx, 0x403998
call fcn.00438385
mov edx, dword [ebp - 8]
sub esi, 0x3947100
pop ecx
xor ecx, ecx
and esi, 0x3100060
or esi, 0x9080c380
push esi
push ecx
push ecx
call fcn.0043840e
mov eax, dword [ebp - 0x10]
add esp, 0xc
mov al, byte [ebp + eax - 0x1e8]
mov byte [ebp + edx - 0x1e8], al
mov eax, dword [ebp - 0x10]
mov dl, byte [ebp + 0x17]
mov byte [ebp + eax - 0x1e8], dl
mov edx, dword [ebp - 8]
movzx eax, byte [ebp + edx - 0x1e8]
add eax, dword [ebp - 0x14]
movzx eax, al
mov al, byte [ebp + eax - 0x1e8]
xor al, byte [ebp + edi - 0x48]
mov byte [ebp + edi - 0x204], al
inc edi
cmp edi, 0x18
jb 0x438f14
mov dword [0x44a7c4], esi
lea eax, [ebp - 0xc]
mov esi, dword [ebp + 0xc]
lea edx, [ebp - 0x204]
push esi
push eax
push dword [ebp + 0x10]
mov byte [ebp - 0x1ec], cl
push dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xe4]
call fcn.004256a7
jmp 0x439137
mov esi, 0x403114
mov dword [ebp - 0x48], 0xaa154f92
xor eax, eax
mov dword [ebp - 0x44], 0xfea60d4d
mov dword [ebp - 0x40], 0xd26d5ff4
mov ecx, eax
mov dword [ebp - 0x3c], 0xb1a5f85d
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x38], 0x5ca4aa49
mov dword [ebp - 0x34], 0x4e15d666
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, eax
mov byte [ebp + ecx - 0x1e8], cl
inc ecx
cmp ecx, 0x100
jb 0x439042
sub dword [0x44a7c4], 0x19795670
mov esi, eax
mov dword [ebp - 0xd4], 0xe
xor edx, edx
mov cl, byte [ebp + esi - 0x1e8]
mov eax, esi
mov byte [ebp + 0x17], cl
div dword [ebp - 0xd4]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x24]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1e8]
mov byte [ebp + esi - 0x1e8], al
inc esi
mov al, byte [ebp + 0x17]
mov byte [ebp + edi - 0x1e8], al
cmp esi, 0x100
jb 0x439068
xor eax, eax
mov dword [ebp + 0x14], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp + 0x14]
mov cl, byte [ebp + edi - 0x1e8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp + 0x14], eax
mov al, byte [ebp + eax - 0x1e8]
mov byte [ebp + edi - 0x1e8], al
mov eax, dword [ebp + 0x14]
mov byte [ebp + eax - 0x1e8], cl
movzx eax, byte [ebp + edi - 0x1e8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1e8]
xor al, byte [ebp + esi - 0x48]
mov byte [ebp + esi - 0x204], al
inc esi
cmp esi, 0x18
jb 0x4390b5
mov esi, dword [ebp + 0xc]
lea edx, [ebp - 0x204]
mov ecx, dword [ebp - 0xe4]
xor eax, eax
mov byte [ebp - 0x1ec], al
lea eax, [ebp - 0xc]
push esi
push eax
push dword [ebp + 0x10]
push dword [ebp - 0xe0]
call fcn.00420897
mov edi, eax
add esp, 0x10
cmp edi, dword [ebp - 0xe8]
jne 0x439180
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0xd8]
jbe 0x439180
push 0x45
pop ecx
mov dword [ebp - 0xdc], 0x5a
xor eax, eax
mov dword [ebp - 0xd8], 0xffffff61
add ecx, dword [ebp + eax*4 - 0xdc]
inc eax
cmp eax, 2
jl 0x439168
cmp esi, ecx
je 0x439180
mov ecx, esi
call fcn.0041c00b
mov eax, edi
pop edi
pop esi
leave
ret