Function at 0x415baf
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Validate payment card number using luhn algorithm

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf00
mov dword [ebp - 0x9c], 0x61
xorps xmm1, xmm1
mov dword [ebp - 0x98], 0x3a
mov dword [ebp - 0x94], 0x2e
mov dword [ebp - 0x90], 0xffffff37
movups xmm0, xmmword [ebp - 0x9c]
mov dword [ebp - 0xc0], ecx
xor ecx, ecx
push 5
psubd xmm1, xmm0
mov dword [ebp - 0xa0], 0x2a
movaps xmm0, xmm1
mov dword [ebp - 0x9c], 0x5b
psrldq xmm0, 8
xor eax, eax
paddd xmm1, xmm0
mov dword [ebp - 0x98], 0x2d
movups xmm0, xmm1
mov dword [ebp - 0x94], 0x27
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x90], 0xffffff27
movd dword [ebp - 0xa8], xmm1
pop edx
sub ecx, dword [ebp + eax*4 - 0xa0]
inc eax
cmp eax, edx
jl 0x415c4d
push ebx
push esi
push edi
mov esi, 0x401dd4
mov dword [ebp - 0xc4], ecx
lea edi, [ebp - 0x9c]
mov dword [ebp - 0x64], 0xc83d18f4
push 0x16
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x60], al
xor eax, eax
mov dword [ebp - 0x5f], 0x382c1bf2
mov dword [ebp - 0x5b], 0x7f5d44df
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x57], 0x74279cd8
mov dword [ebp - 0x53], 0x62a694ed
mov dword [ebp - 0x4f], 0x2b8cca13
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x4b], 0xafaf4053
mov dword [ebp - 0x47], 0xb4095444
mov dword [ebp - 0x43], 0x91ea9714
mov dword [ebp - 0x3f], 0xa46b5561
mov word [ebp - 0x3b], 0xf9d6
mov byte [ebp - 0x39], 0x21
movsd dword es:[edi], dword [esi]
cmp byte [str.kl_GL], al
je 0x415cf6
inc eax
cmp eax, 0x163c
je 0x415ce9
cmp byte [eax + str.kl_GL], 0
jne 0x415cd1
cmp eax, 0x697
jle 0x415cf6
mov eax, dword [0x44d5a0]
imul ecx, eax, 0xf27ae110
jmp 0x415d03
mov eax, dword [0x44d5a0]
mov ecx, eax
xor ecx, 0xcbdb37a5
sub eax, 0x40b68df8
mov dword [0x44d5b0], ecx
push str.kl_GL
mov edx, 0x402098
mov dword [0x44d5a0], eax
call fcn.00415428
pop ecx
xor eax, eax
inc eax
cmp eax, 0x1599
je 0x415d38
cmp byte [eax + 0x4020a0], 0
jne 0x415d25
jmp 0x415d3d
call fcn.0041555f
mov esi, dword [0x44d5b0]
or esi, 0x439e23b8
and dword [ebp - 0x30], 0
xor eax, eax
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x415d4f
and esi, 0x715e4f16
xor edi, edi
push 0xf
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x30]
pop ecx
xor edx, edx
mov bl, byte [ebp + edi - 0x1c8]
mov eax, edi
div ecx
movzx ecx, bl
push 0xf
movzx eax, byte [ebp + edx - 0x9c]
add eax, esi
add ecx, eax
movzx esi, cl
pop ecx
mov al, byte [ebp + esi - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
inc edi
mov byte [ebp + esi - 0x1c8], bl
cmp edi, 0x100
jb 0x415d6f
and dword [ebp - 0x24], 0
xor ebx, ebx
mov esi, dword [ebp - 0x28]
xor edi, edi
lea eax, [ebx + 1]
and esi, 0x4fd57443
movzx ebx, al
mov eax, dword [ebp - 0x24]
mov cl, byte [ebp + ebx - 0x1c8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x24], eax
mov al, byte [ebp + eax - 0x1c8]
mov byte [ebp + ebx - 0x1c8], al
mov eax, dword [ebp - 0x24]
mov byte [ebp + eax - 0x1c8], cl
mov eax, esi
or eax, 0xbe5d508e
mov dword [ebp - 0x28], eax
mov dword [0x44d5a0], eax
movzx eax, byte [ebp + ebx - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + edi - 0x64]
mov byte [ebp + edi - 0x474], al
inc edi
cmp edi, 0x2c
jb 0x415dba
mov dword [0x44d5b0], esi
lea edi, [ebp - 0x18]
push 5
pop eax
mov ecx, eax
mov bh, byte [str.kl_GL]
mov esi, 0x401de4
mov byte [ebp - 0x448], 0
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [ebp - 0x20], 0x18be4a5d
mov word [ebp - 0x1c], 0x4dae
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
test bh, bh
je 0x415e77
inc eax
cmp eax, 0x1a93
jg 0x415e82
cmp byte [eax + str.kl_GL], 0
jne 0x415e5f
cmp eax, 0x7c0
jg 0x415e95
mov esi, dword [ebp - 0x28]
and esi, 0x5069a503
jmp 0x415e98
call fcn.0041555f
mov bh, byte [str.kl_GL]
mov esi, dword [0x44d5a0]
jmp 0x415e98
mov esi, dword [ebp - 0x28]
and dword [ebp - 0x30], 0
add esi, 0xcda7c127
mov dword [ebp - 0x28], esi
xor eax, eax
mov dword [0x44d5b0], esi
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x415ead
push 0x72
mov edx, 0x110c
mov eax, 0x402098
pop ecx
add edx, ecx
inc eax
cmp edx, 0x7f3
ja 0x415edd
movsx ecx, byte [eax]
test ecx, ecx
jne 0x415ec9
jmp 0x415ef2
add esi, 0x958e7b55
and esi, 0x2fc7d50
mov dword [ebp - 0x28], esi
mov dword [0x44d5b0], esi
imul eax, esi, 0xa4db6023
mov esi, dword [ebp - 0x30]
and eax, 0xcf05ac0e
xor edi, edi
mov dword [ebp - 0x70], eax
xor edx, edx
mov bl, byte [ebp + edi - 0x1c8]
push 0x16
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x18]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
inc edi
mov byte [ebp + esi - 0x1c8], bl
cmp edi, 0x100
jb 0x415f05
and dword [ebp - 0x24], 0
xor eax, eax
mov esi, dword [ebp - 0x28]
xor edi, edi
mov dword [ebp - 0x80], 0x4020a0
inc eax
movzx eax, al
mov dword [ebp - 0x2c], eax
mov cl, byte [ebp + eax - 0x1c8]
mov eax, dword [ebp - 0x24]
movzx edx, cl
add eax, edx
mov dword [ebp - 0x30], edx
mov edx, dword [ebp - 0x2c]
movzx eax, al
mov dword [ebp - 0x24], eax
mov al, byte [ebp + eax - 0x1c8]
mov byte [ebp + edx - 0x1c8], al
mov eax, dword [ebp - 0x24]
mov byte [ebp + eax - 0x1c8], cl
mov eax, edx
movzx eax, byte [ebp + eax - 0x1c8]
add eax, dword [ebp - 0x30]
movzx eax, al
mov bl, byte [ebp + eax - 0x1c8]
mov eax, str.kl_GL
jmp 0x415fb7
sub bh, 0x30
cmp bh, 9
ja 0x415fbd
inc eax
mov bh, byte [eax]
test bh, bh
jne 0x415fac
jmp 0x415fca
imul esi, dword [ebp - 0x70], 0xef19a23a
mov dword [0x44d5b0], esi
xor esi, 0xa02ee2ea
mov edx, 0x402098
push 0x4020a0
mov dword [0x44d5a0], esi
call fcn.00415428
mov al, byte [ebp + edi - 0x20]
xor al, bl
mov byte [ebp + edi - 0x22c], al
inc edi
pop ecx
cmp edi, 6
jae 0x416015
mov eax, dword [0x44d5a0]
mov bh, byte [str.kl_GL]
mov esi, dword [0x44d5b0]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x2c]
jmp 0x415f54
mov ecx, dword [0x44d5b0]
mov edx, 0x4020a0
push 0x1e
pop eax
mov esi, ecx
mov byte [ebp - 0x226], 0
mov ebx, eax
and esi, 0x44377021
mov al, 0x6c
sub al, 0x30
cmp al, 9
ja 0x416045
inc edx
mov al, byte [edx]
test al, al
jne 0x416036
jmp 0x416051
imul ecx, esi, 0x381ef0f2
mov dword [0x44d5b0], ecx
imul eax, ecx, 0x9b8c9314
mov dword [0x44d5a0], eax
mov eax, 0x402098
push eax
mov edx, eax
call fcn.00415428
pop ecx
push 5
mov dword [ebp - 0xa0], 0x23
xor eax, eax
mov dword [ebp - 0x9c], 0x1a
mov dword [ebp - 0x98], 0x52
mov dword [ebp - 0x94], 0x17
mov dword [ebp - 0x90], 0xffffff76
pop ecx
sub ebx, dword [ebp + eax*4 - 0xa0]
inc eax
cmp eax, ecx
jl 0x4160a1
push 0xe
pop edx
mov dword [ebp - 0xb0], ebx
mov ecx, edx
mov dword [ebp - 0xbc], 0x59
xor eax, eax
mov dword [ebp - 0xb8], 9
mov dword [ebp - 0xb4], 0xffffff90
add ecx, dword [ebp + eax*4 - 0xbc]
inc eax
cmp eax, 3
jl 0x4160d8
mov dword [ebp - 0xac], ecx
xor eax, eax
mov ecx, edx
mov dword [ebp - 0xbc], 0x2f
mov dword [ebp - 0xb8], 0x2c
mov dword [ebp - 0xb4], 0xffffffb2
sub ecx, dword [ebp + eax*4 - 0xbc]
inc eax
cmp eax, 3
jl 0x41610d
mov eax, dword [0x44d5b0]
lea edi, [ebp - 0x88]
mov esi, 0x401dfc
mov dword [ebp - 0xc8], ecx
and eax, 0xe81937eb
mov dword [ebp - 0x18], 0x25dfb7f3
push 6
pop ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x2c], eax
mov dword [0x44d5a0], eax
mov word [ebp - 0x14], 0xf710
movsw word es:[edi], word [esi]
mov byte [ebp - 0x12], 0x6f
mov byte [ebp - 0x11], cl
mov dword [ebp - 0x10], 0x9db11f5f
movsb byte es:[edi], byte [esi]
xor edi, edi
mov dword [ebp - 0xc], 0xfc045b8a
mov dword [ebp - 8], 0xa4f217ec
xor eax, eax
mov dword [ebp - 4], 0xc6fc67dc
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x416178
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1c8]
mov eax, esi
div ecx
movzx ecx, bl
push 6
movzx eax, byte [ebp + edx - 0x88]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + edi - 0x1c8], bl
cmp esi, 0x100
jb 0x416189
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1c8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
mov byte [ebp + ebx - 0x1c8], cl
movzx eax, byte [ebp + edi - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x380], al
inc esi
cmp esi, 0x18
jb 0x4161cf
mov esi, 0x401e04
mov byte [ebp - 0x368], 0
lea edi, [ebp - 0x9c]
mov byte [ebp - 0x20], 0xce
push 0x16
pop eax
movsd dword es:[edi], dword [esi]
mov ecx, str.kl_GL
mov byte [ebp - 0x1f], al
mov al, byte [str.kl_GL]
mov dword [ebp - 0x1e], 0xcda6f8cb
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x416260
sub al, 0x30
cmp al, 9
ja 0x4166b5
inc ecx
mov al, byte [ecx]
test al, al
jne 0x416253
mov ecx, dword [ebp - 0x2c]
xor edi, edi
lea eax, [ecx + 0x413d0b17]
mov ebx, 0x100
mov dword [ebp - 0x24], eax
xor eax, eax
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, ebx
jb 0x416279
xor esi, esi
mov dl, byte [ebp + esi - 0x1c8]
mov eax, esi
and eax, 0xf
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x9c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + edi - 0x1c8], dl
cmp esi, ebx
jb 0x416287
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
push 6
mov cl, byte [ebp + edi - 0x1c8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
mov byte [ebp + ebx - 0x1c8], cl
movzx eax, byte [ebp + edi - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x224], al
inc esi
pop eax
cmp esi, eax
jb 0x4162c5
mov eax, dword [0x401e18]
xor edi, edi
mov dword [ebp - 0x20], eax
mov ax, word [0x401e1c]
mov word [ebp - 0x1c], ax
xor eax, eax
mov byte [ebp - 0x21e], 0
mov dword [ebp - 0x18], 0x5b2bc540
mov dword [ebp - 0x14], 0xd7614340
mov dword [ebp - 0x10], 0x631460c8
mov dword [ebp - 0xc], 0xfccb8ff6
mov dword [ebp - 8], 0xf3b08835
mov dword [ebp - 4], 0xf9aacda1
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x41635e
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1c8]
push 5
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x20]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + edi - 0x1c8], bl
cmp esi, 0x100
jb 0x41636f
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1c8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
mov byte [ebp + ebx - 0x1c8], cl
movzx eax, byte [ebp + edi - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x39c], al
inc esi
cmp esi, 0x18
jb 0x4163b2
or dword [ebp - 0x24], 0x6d79728f
lea edi, [ebp - 0x1e0]
mov esi, 0x401e20
mov byte [ebp - 0x384], 0
push 0x6c
pop eax
push 0x16
movsd dword es:[edi], dword [esi]
pop ecx
mov byte [ebp - 0x5b], al
mov byte [ebp - 0x41], al
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x64], 0x30bc7ae0
mov dword [ebp - 0x60], 0xe99c9f73
mov byte [ebp - 0x5c], 0xe9
movsw word es:[edi], word [esi]
mov dword [ebp - 0x5a], 0xbf017a75
mov dword [ebp - 0x56], 0x1199c5d1
mov dword [ebp - 0x52], 0x41f7683f
movsb byte es:[edi], byte [esi]
xor edi, edi
mov dword [ebp - 0x4e], 0x4a398d3
mov byte [ebp - 0x4a], cl
xor eax, eax
mov dword [ebp - 0x49], 0xfc8766c2
mov dword [ebp - 0x45], 0x6985279f
mov dword [ebp - 0x40], 0xaccb5a82
mov dword [ebp - 0x3c], 0xb0acd909
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x41647d
push 0xa
xor esi, esi
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x1c8]
mov eax, esi
div ecx
movzx ecx, bl
push 0xa
movzx eax, byte [ebp + edx - 0x1e0]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + edi - 0x1c8], bl
cmp esi, 0x100
jb 0x416491
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1c8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
mov byte [ebp + ebx - 0x1c8], cl
movzx eax, byte [ebp + edi - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + esi - 0x64]
mov byte [ebp + esi - 0x4a4], al
inc esi
cmp esi, 0x2c
jb 0x4164d7
mov esi, 0x401e2c
mov byte [ebp - 0x478], 0
lea edi, [ebp - 0x1fc]
mov byte [ebp - 0x64], 0xfe
push 0x33
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x63], al
mov dword [ebp - 0x62], 0xd704cd7b
mov dword [ebp - 0x5e], 0x356ec2ac
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x5a], 0x8a082d24
mov dword [ebp - 0x56], 0x8ed4f3e
mov dword [ebp - 0x52], 0x1bd5c4fe
movsd dword es:[edi], dword [esi]
xor edi, edi
mov dword [ebp - 0x4e], 0x359019bf
mov dword [ebp - 0x4a], 0x1abfcb2e
xor eax, eax
mov dword [ebp - 0x46], 0x6b4d9db1
mov dword [ebp - 0x42], 0x6ee9bf86
mov dword [ebp - 0x3e], 0x595aeb71
mov word [ebp - 0x3a], 0x6c3f
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x416596
push 0xb
xor esi, esi
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x1c8]
mov eax, esi
div ecx
movzx ecx, bl
push 0xb
movzx eax, byte [ebp + edx - 0x1fc]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + edi - 0x1c8], bl
cmp esi, 0x100
jb 0x4165aa
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1c8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
mov byte [ebp + ebx - 0x1c8], cl
movzx eax, byte [ebp + edi - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + esi - 0x64]
mov byte [ebp + esi - 0x4d4], al
inc esi
cmp esi, 0x2c
jb 0x4165f0
mov esi, dword [ebp - 0x24]
mov edx, 0x173c
push 0x6c
mov byte [ebp - 0x4a8], 0
mov eax, 0x4020a0
mov dword [ebp - 0x18], 0x32cdc973
lea ebx, [esi - 0x7b997df1]
mov dword [ebp - 0x14], 0x587f2bc6
or ebx, 0x4aaca16b
mov dword [ebp - 0x10], 0xd3cc9044
mov dword [ebp - 0xc], 0x2bf8d9e2
mov dword [ebp - 8], 0xa0d01b89
mov dword [ebp - 4], 0x9226313d
mov dword [ebp - 0x88], 0x7373656d
mov dword [ebp - 0x84], 0x656761
pop ecx
add edx, ecx
inc eax
cmp edx, 0x1eb
ja 0x4166d5
movsx ecx, byte [eax]
test ecx, ecx
jne 0x4166a1
jmp 0x4166db
mov ecx, dword [ebp - 0x2c]
push ecx
lea eax, [ecx - 0x505b54e]
mov dword [0x44d5b0], eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [0x44d5a0]
jmp 0x416267
lea ebx, [esi + 0x573082c4]
lea eax, [ebx + 0x56a595a]
xor edi, edi
and eax, 0xb55245d
mov dword [ebp - 0x28], eax
mov dword [0x44d5b0], eax
xor eax, eax
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x4166f2
push 7
xor esi, esi
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x1c8]
mov eax, esi
div ecx
movzx ecx, bl
push 7
movzx eax, byte [ebp + edx - 0x88]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + edi - 0x1c8], bl
cmp esi, 0x100
jb 0x416706
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1c8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
mov byte [ebp + ebx - 0x1c8], cl
movzx eax, byte [ebp + edi - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x3b8], al
inc esi
cmp esi, 0x18
jb 0x41674c
xor edi, edi
mov byte [ebp - 0x3a0], 0
mov dword [ebp - 0x18], 0x6b8dff92
xor eax, eax
mov dword [ebp - 0x14], 0xb135d757
mov dword [ebp - 0x10], 0xcc544c5c
mov dword [ebp - 0xc], 0xf05e42dc
mov dword [ebp - 8], 0x7850ea28
mov dword [ebp - 4], 0x4465248b
mov dword [ebp - 0x88], 0x73657268
mov dword [ebp - 0x84], 0x746c75
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x4167e5
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1c8]
push 7
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x88]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + edi - 0x1c8], bl
cmp esi, 0x100
jb 0x4167f6
mov eax, dword [ebp - 0x28]
xor ebx, ebx
xor edi, edi
xor esi, esi
add eax, 0x949b740d
mov dword [ebp - 0x30], eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1c8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
mov byte [ebp + ebx - 0x1c8], cl
movzx eax, byte [ebp + edi - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x3d4], al
inc esi
cmp esi, 0x18
jb 0x416847
push 7
pop eax
mov ecx, eax
mov byte [ebp - 0x3bc], 0
mov esi, 0x401e38
mov dword [ebp - 0x38], 0xa0294f35
lea edi, [ebp - 0x58]
mov byte [ebp - 0x34], 0x38
rep movsd dword es:[edi], dword [esi]
xor eax, eax
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
inc eax
cmp eax, 0x16b2
je 0x4168d3
cmp byte [eax + 0x4020a0], 0
jne 0x4168bd
mov eax, dword [ebp - 0x28]
jmp 0x4168df
imul eax, dword [ebp - 0x30], 0xd081326d
mov dword [0x44d5b0], eax
imul eax, eax, 0x4bef9b46
mov edx, 0x4020a0
push str.kl_GL
mov dword [0x44d5a0], eax
call fcn.00415428
and dword [ebp - 0x28], 0
xor eax, eax
pop ecx
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x416900
mov esi, dword [0x44d5a0]
xor edi, edi
xor edx, edx
mov bl, byte [ebp + edi - 0x1c8]
push 0x1e
mov eax, edi
and esi, 0x190ce4e0
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x58]
add eax, dword [ebp - 0x28]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x28], ecx
mov al, byte [ebp + ecx - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
inc edi
mov byte [ebp + ecx - 0x1c8], bl
cmp edi, 0x100
jb 0x416917
and dword [ebp - 0x2c], 0
xor edx, edx
xor eax, eax
inc eax
cmp eax, 0x1570
jl 0x416978
cmp byte [eax + 0x4020a0], dl
jne 0x416966
jmp 0x416984
mov esi, dword [0x44d5b0]
and esi, 0x6e91b62c
xor esi, 0x8649122b
mov dword [0x44d5b0], esi
xor esi, 0x625d3811
xor edi, edi
lea eax, [edx + 1]
movzx edx, al
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], edx
mov cl, byte [ebp + edx - 0x1c8]
movzx ebx, cl
add eax, ebx
movzx eax, al
mov dword [ebp - 0x2c], eax
mov al, byte [ebp + eax - 0x1c8]
mov byte [ebp + edx - 0x1c8], al
mov edx, 0x402098
mov eax, dword [ebp - 0x2c]
mov byte [ebp + eax - 0x1c8], cl
mov ecx, edx
mov al, 0x72
sub al, 0x30
cmp al, 9
ja 0x4169e6
inc ecx
mov al, byte [ecx]
test al, al
jne 0x4169d7
jmp 0x4169ec
and esi, 0x802ab0e6
add esi, 0x41ff26f5
push edx
mov dword [0x44d5a0], esi
call fcn.00415428
mov edx, dword [ebp - 0x30]
pop ecx
mov ecx, dword [0x44d5b0]
push 5
movzx eax, byte [ebp + edx - 0x1c8]
add eax, ebx
movzx eax, al
lea esi, [ecx - 0x5701fac0]
mov dword [0x44d5a0], esi
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + edi - 0x38]
mov byte [ebp + edi - 0x1e8], al
inc edi
pop eax
cmp edi, eax
jb 0x416998
mov esi, 0x401c20
mov byte [ebp - 0x1e3], 0
lea edi, [ebp - 0x9c]
mov dword [ebp - 0x18], 0xe8a7f92f
push 0xe
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 1], al
xor eax, eax
mov dword [ebp - 0x14], 0x2bc8f3c3
mov dword [ebp - 0x10], 0xce9c9e44
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xc], 0x38e240c5
mov dword [ebp - 8], 0x77821b23
mov word [ebp - 4], 0xecfa
movsd dword es:[edi], dword [esi]
mov byte [ebp - 2], 0xb
movsd dword es:[edi], dword [esi]
inc eax
cmp eax, 0x783
je 0x416a9d
cmp byte [eax + 0x402098], 0
jne 0x416a8a
jmp 0x416ab3
push 0x4020a0
mov edx, str.kl_GL
call fcn.00415428
pop ecx
mov ecx, dword [0x44d5b0]
imul eax, ecx, 0x9077c7cc
mov edx, 0x4020a0
push str.kl_GL
mov dword [0x44d5a0], eax
call fcn.00415428
xor edi, edi
xor eax, eax
pop ecx
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x416ad2
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1c8]
push 0xf
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x9c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + edi - 0x1c8], bl
cmp esi, 0x100
jb 0x416ae3
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1c8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
mov byte [ebp + ebx - 0x1c8], cl
movzx eax, byte [ebp + edi - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x40c], al
inc esi
cmp esi, 0x18
jb 0x416b29
mov eax, dword [0x401e58]
mov dword [ebp - 0x7c], eax
mov ax, word [0x401e5c]
mov byte [ebp - 0x3f4], 0
mov dword [ebp - 0x20], 0x116bd19a
mov word [ebp - 0x1c], 0xe45b
mov word [ebp - 0x78], ax
mov edi, dword [0x44d5a0]
or edi, 0x3dcfd2ef
mov dword [ebp - 0x28], edi
mov dword [0x44d5a0], edi
and dword [ebp - 0x30], 0
lea eax, [edi - 0x1464b2b1]
mov dword [0x44d5b0], eax
xor eax, eax
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x416bc5
mov edi, dword [ebp - 0x30]
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1c8]
push 5
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x7c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + edi - 0x1c8], bl
cmp esi, 0x100
jb 0x416bd9
and dword [ebp - 0x30], 0
mov esi, 0x402098
mov edi, dword [ebp - 0x28]
xor ebx, ebx
push 0x72
mov edx, 0x5b6
mov eax, esi
pop ecx
add edx, ecx
inc eax
cmp edx, 0x19c4
ja 0x416c42
movsx ecx, byte [eax]
test ecx, ecx
jne 0x416c2e
jmp 0x416c55
push str.kl_GL
mov edx, esi
call fcn.00415428
mov edi, dword [0x44d5a0]
pop ecx
and edi, 0x3116b3f5
mov edx, str.kl_GL
push esi
mov dword [0x44d5b0], edi
call fcn.00415428
mov edi, dword [ebp - 0x30]
xor esi, esi
pop ecx
lea eax, [ebx + 1]
movzx ebx, al
push 6
mov cl, byte [ebp + ebx - 0x1c8]
movzx edx, cl
lea eax, [edi + edx]
movzx edi, al
mov al, byte [ebp + edi - 0x1c8]
mov byte [ebp + ebx - 0x1c8], al
mov byte [ebp + edi - 0x1c8], cl
movzx eax, byte [ebp + ebx - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x214], al
inc esi
pop eax
cmp esi, eax
jb 0x416c72
mov eax, dword [0x401e60]
xor edi, edi
mov dword [ebp - 0x20], eax
mov ax, word [0x401e64]
mov word [ebp - 0x1c], ax
xor eax, eax
mov byte [ebp - 0x20e], 0
mov dword [ebp - 0x18], 0xa470f0da
mov dword [ebp - 0x14], 0xee1ba580
mov dword [ebp - 0x10], 0xe1591960
mov dword [ebp - 0xc], 0xbdf73411
mov dword [ebp - 8], 0x77ae9669
mov dword [ebp - 4], 0xfebed7ab
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x416d0b
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1c8]
push 5
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x20]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + edi - 0x1c8], bl
cmp esi, 0x100
jb 0x416d1c
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1c8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
mov byte [ebp + ebx - 0x1c8], cl
movzx eax, byte [ebp + edi - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x428], al
inc esi
cmp esi, 0x18
jb 0x416d5f
mov ecx, dword [0x44d5b0]
lea edi, [ebp - 0x1e0]
mov esi, 0x401e68
mov byte [ebp - 0x410], 0
mov dword [ebp - 0x38], 0x157927be
mov byte [ebp - 0x34], 0x3d
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
xor ebx, ebx
push 0x72
mov esi, 0x1de1
mov eax, 0x402098
pop edx
add esi, edx
inc eax
cmp esi, 0x1020
ja 0x416dfc
movsx edx, byte [eax]
test edx, edx
jne 0x416de8
jmp 0x416e16
mov eax, str.kl_GL
push eax
mov edx, eax
call fcn.00415428
pop ecx
mov ecx, dword [0x44d5a0]
or ecx, 0xf39409fd
sub dword [0x44d5a0], 0x7ceb538f
and ecx, 0xecb1cd83
mov byte [ebp + ebx - 0x1c8], bl
inc ebx
mov dword [0x44d5b0], ecx
cmp ebx, 0x100
jb 0x416ddb
xor esi, esi
mov edi, esi
xor eax, eax
inc eax
cmp eax, 0x2046
jg 0x416e5c
cmp byte [eax + 0x402098], 0
jne 0x416e42
cmp eax, 0x1f1
jle 0x416e6d
jmp 0x416e68
sub ecx, 0x4f309cb3
mov dword [0x44d5b0], ecx
call fcn.0041555f
mov eax, dword [0x44d5a0]
mov edx, 0x402098
or eax, 0x69f6090f
sub eax, 0x77386bce
push str.kl_GL
mov dword [0x44d5a0], eax
call fcn.00415428
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x1c8]
push 0xa
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x1e0]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + edi - 0x1c8], bl
cmp esi, 0x100
jae 0x416edc
mov ecx, dword [0x44d5b0]
jmp 0x416e40
mov eax, dword [0x44d5a0]
xor ebx, ebx
and eax, 0x4169db01
xor edi, edi
mov dword [ebp - 0x2c], eax
xor esi, esi
mov dword [0x44d5b0], eax
lea eax, [edi + 1]
movzx edi, al
push 5
mov cl, byte [ebp + edi - 0x1c8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
mov byte [ebp + ebx - 0x1c8], cl
movzx eax, byte [ebp + edi - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + esi - 0x38]
mov byte [ebp + esi - 0x1f0], al
inc esi
pop eax
cmp esi, eax
jb 0x416ef4
push 0x4d
pop edx
xor ecx, ecx
mov byte [ebp - 0x1eb], 0
mov dword [ebp - 0xbc], edx
xor eax, eax
mov dword [ebp - 0xb8], 0x4f
mov dword [ebp - 0xb4], 0xffffff64
sub ecx, dword [ebp + eax*4 - 0xbc]
inc eax
cmp eax, 3
jl 0x416f6e
mov dword [ebp - 0x9c], 0x22
mov dword [ebp - 0x98], 0x29
mov dword [ebp - 0x94], 9
mov dword [ebp - 0x90], 0xffffff80
movups xmm1, xmmword [ebp - 0x9c]
push 0x49
mov dword [ebp - 0x204], ecx
movaps xmm0, xmm1
mov dword [ebp - 0xbc], 0x44
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0xb8], 0x5d
movups xmm0, xmm1
mov dword [ebp - 0xb4], 0xffffff16
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop ecx
add eax, 0x2c
mov dword [ebp - 0x208], eax
xor eax, eax
add ecx, dword [ebp + eax*4 - 0xbc]
inc eax
cmp eax, 3
jl 0x416ff8
and dword [ebp - 0x28], 0
lea edi, [ebp - 0x6c]
push 0xf
pop eax
mov dword [ebp - 0x9c], edx
xorps xmm1, xmm1
mov dword [ebp - 0x98], 0x31
mov esi, 0x401e74
mov dword [ebp - 0x94], 0x4b
mov dword [ebp - 0x90], 0xffffff37
movups xmm0, xmmword [ebp - 0x9c]
push 0x1e
mov byte [ebp - 0xc], al
psubd xmm1, xmm0
mov dword [ebp - 0x20c], ecx
movaps xmm0, xmm1
mov dword [ebp - 0x18], 0x938d2596
pop eax
psrldq xmm0, 8
paddd xmm1, xmm0
mov byte [ebp - 4], al
push 0xd
pop eax
movups xmm0, xmm1
mov dword [ebp - 0x14], 0xe899be14
mov ecx, eax
psrldq xmm0, 4
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x2c]
paddd xmm1, xmm0
imul edi, esi, 0x1c48ffb2
xor eax, eax
movd dword [ebp - 0x38], xmm1
mov dword [ebp - 0x10], 0xa5aff77b
mov dword [ebp - 0xb], 0x172d5db5
mov word [ebp - 7], 0x92e8
mov byte [ebp - 5], 0x87
mov word [ebp - 3], 0x4003
mov byte [ebp - 1], 0xa8
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x4170b4
push 0x6c
mov edx, 0x1d23
mov eax, 0x4020a0
pop ecx
add edx, ecx
inc eax
cmp edx, 0x400
ja 0x4170f0
movsx ecx, byte [eax]
test ecx, ecx
jne 0x4170d0
or edi, 0xdef0e5bf
mov dword [0x44d5a0], edi
jmp 0x417113
sub edi, 0x7d94b7de
mov dword [0x44d5a0], edi
call fcn.0041555f
mov esi, dword [0x44d5b0]
mov edi, dword [0x44d5a0]
add esi, 0x537aec34
mov dword [ebp - 0x70], edi
or esi, 0xc9e54d75
mov dword [ebp - 0x2c], esi
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1c8]
push 0x33
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x6c]
add eax, dword [ebp - 0x28]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x28], ecx
mov al, byte [ebp + ecx - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + ecx - 0x1c8], bl
cmp esi, 0x100
jb 0x417121
and dword [ebp - 0x24], 0
xor edi, edi
mov esi, dword [ebp - 0x2c]
xor ebx, ebx
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x24]
mov cl, byte [ebp + edi - 0x1c8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x24], eax
mov al, byte [ebp + eax - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
mov eax, dword [ebp - 0x24]
mov byte [ebp + eax - 0x1c8], cl
movzx eax, byte [ebp + edi - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + ebx - 0x18]
mov byte [ebp + ebx - 0x444], al
inc ebx
cmp ebx, 0x18
jb 0x41716d
and dword [ebp - 0x28], 0
and esi, 0x4f1f5e6c
mov edi, dword [ebp - 0x70]
push 0x1e
pop eax
mov byte [ebp - 0x1d], al
mov eax, dword [0x401ea8]
mov dword [ebp - 0x7c], eax
mov ax, word [0x401eac]
mov word [ebp - 0x78], ax
xor eax, eax
mov byte [ebp - 0x42c], 0
mov word [ebp - 0x20], 0x7436
mov byte [ebp - 0x1e], 0x69
mov word [ebp - 0x1c], 0x7c83
mov dword [0x44d5b0], esi
inc eax
cmp eax, 0x2005
je 0x41721c
cmp byte [eax + 0x4020a0], 0
jne 0x417209
jmp 0x41722f
call fcn.0041555f
mov esi, dword [0x44d5b0]
mov edi, esi
xor edi, 0x82fc0173
and esi, 0xce61ad27
mov dword [0x44d5b0], esi
imul eax, edi, 0x63ccff6d
mov edx, 0x4020a0
push 0x402098
mov dword [0x44d5a0], eax
call fcn.00415428
pop ecx
xor eax, eax
mov edi, 0x100
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, edi
jb 0x41725d
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1c8]
push 5
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x7c]
add eax, dword [ebp - 0x28]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x28], ecx
mov al, byte [ebp + ecx - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + ecx - 0x1c8], bl
cmp esi, edi
jb 0x41726b
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
push 6
mov cl, byte [ebp + edi - 0x1c8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
mov byte [ebp + ebx - 0x1c8], cl
movzx eax, byte [ebp + edi - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x21c], al
inc esi
pop eax
cmp esi, eax
jb 0x4172ae
push dword [ebp - 0xac]
lea ecx, [ebp - 0x22c]
mov byte [ebp - 0x216], 0
push dword [ebp - 0xb0]
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x474]
call fcn.0041e636
call eax
mov ecx, dword [ebp - 0xc8]
neg ecx
mov dword [ebp - 0x28], eax
cmp eax, ecx
jne 0x417347
mov eax, dword [ebp - 0xa8]
jmp 0x417fe9
lea ecx, [ebp - 0x700]
mov dword [ebp - 0x700], 0x22c
push ecx
push eax
lea ecx, [ebp - 0x224]
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x380]
call fcn.0041e636
call eax
test eax, eax
jne 0x41761e
mov eax, dword [0x401eb0]
mov esi, 0x402098
mov dword [ebp - 0x20], eax
mov edx, esi
mov ax, word [0x401eb4]
push 0x72
mov dword [ebp - 0x18], 0x3b30c566
mov dword [ebp - 0x14], 0x4b26f2d6
mov dword [ebp - 0x10], 0x43996e03
mov dword [ebp - 0xc], 0x64c965ab
mov dword [ebp - 8], 0x661153b7
mov dword [ebp - 4], 0x1c41a268
mov word [ebp - 0x1c], ax
pop ebx
mov ecx, dword [0x44d5b0]
sub bl, 0x30
cmp bl, 9
ja 0x4173da
inc edx
mov al, byte [edx]
mov bl, al
test al, al
jne 0x4173c1
jmp 0x4173e6
mov eax, ecx
or eax, 0x89944192
mov dword [0x44d5a0], eax
xor ecx, 0xd41958fc
mov edx, esi
push 0x4020a0
mov dword [0x44d5b0], ecx
call fcn.00415428
xor edi, edi
xor eax, eax
pop ecx
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x417403
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1c8]
push 5
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x20]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + edi - 0x1c8], bl
cmp esi, 0x100
jb 0x417414
and dword [ebp - 0x24], 0
xor edi, edi
mov ebx, dword [0x44d5a0]
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x24]
mov cl, byte [ebp + edi - 0x1c8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x24], eax
lea eax, [ebx - 0x1193076b]
or eax, 0xa663fa5f
xor ebx, 0xc7b601c9
mov dword [0x44d5b0], eax
mov eax, dword [ebp - 0x24]
mov al, byte [ebp + eax - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
mov eax, dword [ebp - 0x24]
mov byte [ebp + eax - 0x1c8], cl
movzx eax, byte [ebp + edi - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0xa4], al
inc esi
cmp esi, 0x18
jb 0x41745f
mov esi, 0x401bb4
mov byte [ebp - 0x8c], 0
lea edi, [ebp - 0x1d4]
mov word [ebp - 0x20], 0x2ae3
push 0xe
pop eax
movsd dword es:[edi], dword [esi]
push 0x6c
mov byte [ebp - 0x1e], 0xb2
mov byte [ebp - 0x1d], al
movsd dword es:[edi], dword [esi]
mov word [ebp - 0x1c], 0x2b2c
pop ecx
movsb byte es:[edi], byte [esi]
sub cl, 0x30
cmp cl, 9
ja 0x417517
mov eax, dword [ebp - 0x80]
inc eax
mov dword [ebp - 0x80], eax
mov al, byte [eax]
mov cl, al
test al, al
jne 0x4174fe
jmp 0x41751d
sub ebx, 0x45868cc2
add ebx, 0x6fb75b5a
mov dword [0x44d5a0], ebx
call fcn.0041555f
xor edi, edi
mov ebx, 0x100
xor eax, eax
mov byte [ebp + eax - 0x364], al
inc eax
cmp eax, ebx
jb 0x417537
mov eax, dword [0x44d5b0]
add eax, 0x14682a42
xor esi, esi
mov dword [0x44d5a0], eax
mov dl, byte [ebp + esi - 0x364]
mov eax, esi
push 7
pop ecx
and eax, ecx
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x1d4]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x364]
mov byte [ebp + esi - 0x364], al
inc esi
mov byte [ebp + edi - 0x364], dl
cmp esi, ebx
jb 0x417554
mov eax, dword [0x44d5a0]
xor ebx, ebx
xor edi, edi
xor esi, esi
add eax, 0x94e6b93a
mov dword [0x44d5b0], eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x364]
movzx edx, cl
push 6
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x364]
mov byte [ebp + edi - 0x364], al
mov byte [ebp + ebx - 0x364], cl
movzx eax, byte [ebp + edi - 0x364]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x364]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x88], al
inc esi
pop eax
cmp esi, eax
jb 0x4175a3
push dword [ebp - 0x28]
lea ecx, [ebp - 0x88]
mov byte [ebp - 0x82], 0
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0xa4]
call fcn.0041e636
call eax
jmp 0x41733c
xor dword [0x44d5b0], 0xc7f35faf
lea ecx, [ebp - 0x39c]
call fcn.004361ab
mov ecx, dword [0x44d5a0]
mov ebx, eax
or ecx, 0x69e5b49d
mov dword [ebp - 0x70], ebx
mov dword [0x44d5b0], ecx
lea ecx, [ebp - 0x4a4]
call fcn.004361ab
lea ecx, [ebp - 0x4d4]
mov dword [ebp - 0x30], eax
call fcn.004361ab
lea ecx, [ebp - 0x3b8]
mov dword [ebp - 0xa8], eax
call fcn.004361ab
push ebx
push dword [ebp - 0xc0]
lea ecx, [ebp - 0x1e8]
mov dword [ebp - 0x200], eax
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x3d4]
call fcn.0041e636
call eax
pop ecx
pop ecx
call fcn.00415af9
mov edi, eax
mov dword [ebp - 0x9c], 0x1d
push 5
pop eax
mov dword [ebp - 0x98], 0x53
mov dword [ebp - 0x94], 0x58
mov dword [ebp - 0x90], 0xffffff38
movups xmm0, xmmword [ebp - 0x9c]
mov dword [ebp - 0xc8], edi
mov dword [ebp - 0x244], eax
mov dword [ebp - 0x240], 0x1f
mov dword [ebp - 0x23c], 0xffffffa8
mov dword [ebp - 0x238], 0x57
mov dword [ebp - 0x234], 0x49
mov dword [ebp - 0x230], 0xffffff37
jmp 0x41771c
mov edi, dword [ebp - 0xc8]
xorps xmm1, xmm1
xor eax, eax
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
push 0x35
paddd xmm1, xmm0
pop ecx
add ecx, dword [ebp + eax*4 - 0x244]
inc eax
cmp eax, 3
jl 0x417740
push 0x29
pop ebx
xor eax, eax
add ebx, dword [ebp + eax*4 - 0x238]
inc eax
cmp eax, 3
jl 0x417752
xor esi, esi
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x14], 0x1b
xor eax, eax
mov dword [ebp - 0x10], 0x32
mov dword [ebp - 0xc], 0x40
mov dword [ebp - 8], 0x63
mov dword [ebp - 4], 0xffffff10
sub esi, dword [ebp + eax*4 - 0x14]
inc eax
cmp eax, 5
jl 0x417789
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x6f8]
lea edx, [ebp - 0x80]
push eax
movd dword [ebp - 0x80], xmm1
call fcn.00415661
pop ecx
cmp edi, dword [ebp - 0x6f8]
jne 0x4177e7
push 0xc
pop eax
mov ebx, eax
mov dword [ebp - 0x1f8], eax
mov dword [ebp - 0x1fc], 0x18
xor eax, eax
mov dword [ebp - 0x1f4], 0xffffffe7
sub ebx, dword [ebp + eax*4 - 0x1fc]
inc eax
cmp eax, 3
jl 0x4177d7
mov dword [ebp - 0x2c], ebx
cmp dword [ebp - 0xc4], esi
jne 0x417ae5
mov esi, 0x401eb8
mov dword [ebp - 0x17], 0x207b28eb
lea edi, [ebp - 0x1e0]
mov dword [ebp - 0x13], 0x9858fdfc
push 0xa
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x18], al
mov dword [ebp - 0xf], 0xd2c127ea
mov dword [ebp - 0xb], 0x176fb99a
movsd dword es:[edi], dword [esi]
mov dword [ebp - 7], 0x82243a44
mov word [ebp - 3], 0xbd17
mov byte [ebp - 1], 0x13
movsb byte es:[edi], byte [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x364], al
inc eax
cmp eax, 0x100
jb 0x417838
push 0x72
mov edx, 0x1add
mov eax, 0x402098
pop ecx
add edx, ecx
inc eax
cmp edx, 0x21b7
ja 0x417872
movsx ecx, byte [eax]
test ecx, ecx
jne 0x417854
mov eax, dword [0x44d5a0]
mov ebx, 0x4020a0
jmp 0x417892
mov ebx, 0x4020a0
mov edx, str.kl_GL
push ebx
call fcn.00415428
mov eax, dword [0x44d5a0]
sub eax, 0xb82d3d0
pop ecx
mov dword [0x44d5a0], eax
add eax, 0xcc29123
mov edx, str.kl_GL
push ebx
mov dword [0x44d5b0], eax
call fcn.00415428
pop ecx
xor esi, esi
movzx eax, byte [str.kl_GL]
mov edx, 0x8e6
mov ecx, str.kl_GL
jmp 0x4178cf
add edx, eax
inc ecx
cmp edx, 0x1093
ja 0x417ac8
movzx eax, byte [ecx]
test eax, eax
jne 0x4178bd
mov ecx, dword [0x44d5a0]
imul eax, ecx, 0xc4b2c546
mov dword [0x44d5b0], eax
add ecx, 0x53a54f66
mov edx, ebx
push str.kl_GL
mov dword [0x44d5a0], ecx
call fcn.00415428
mov dl, byte [ebp + esi - 0x364]
mov eax, esi
pop ecx
push 7
pop ecx
and eax, ecx
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x1e0]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x364]
mov byte [ebp + esi - 0x364], al
inc esi
mov byte [ebp + edi - 0x364], dl
cmp esi, 0x100
jb 0x4178aa
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x364]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x364]
mov byte [ebp + edi - 0x364], al
mov byte [ebp + ebx - 0x364], cl
movzx eax, byte [ebp + edi - 0x364]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x364]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x3f0], al
inc esi
cmp esi, 0x18
jb 0x417945
mov esi, 0x401ec4
mov byte [ebp - 0x3d8], 0
lea edi, [ebp - 0x264]
mov dword [ebp - 0x7c], 0xd91c5f99
mov byte [ebp - 0x78], 0x73
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x4179bc
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1c8]
push 0xe
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x264]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + edi - 0x1c8], bl
cmp esi, 0x100
jb 0x4179cd
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
sub dword [0x44d5b0], 0x129f8150
movzx edi, al
push 5
mov cl, byte [ebp + edi - 0x1c8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
mov byte [ebp + ebx - 0x1c8], cl
movzx eax, byte [ebp + edi - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + esi - 0x7c]
mov byte [ebp + esi - 0x1d4], al
inc esi
pop eax
cmp esi, eax
jb 0x417a13
push dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
lea eax, [ebp - 0x6dc]
push dword [ebp - 0x24]
lea ecx, [ebp - 0x1d4]
mov byte [ebp - 0x1cf], 0
push dword [ebp - 0x80]
push dword [ebp - 0x6e4]
push dword [ebp - 0x6e8]
push dword [ebp - 0x6f8]
push eax
lea eax, [ebp - 0xf00]
push esi
push eax
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x3f0]
call fcn.0041e636
call eax
mov edi, dword [ebp - 0xa8]
jmp 0x417e70
push ebx
mov edx, 0x402098
call fcn.00415428
pop ecx
mov ecx, dword [0x44d5a0]
xor ecx, 0xb1fb21d6
jmp 0x4178d9
mov esi, 0x401c90
mov dword [ebp - 0x18], 0x62a295a7
lea edi, [ebp - 0x254]
mov dword [ebp - 0x14], 0xa6d8d38c
push 0xf
pop eax
movsd dword es:[edi], dword [esi]
mov ebx, str.kl_GL
mov byte [ebp - 5], al
mov edx, 0xac1
movzx eax, byte [str.kl_GL]
mov ecx, ebx
mov dword [ebp - 0x10], 0x8256653a
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xc], 0x3869ec91
mov word [ebp - 8], 0x9d68
mov byte [ebp - 6], 0xc5
movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], 0x1b3cb381
movsw word es:[edi], word [esi]
jmp 0x417b4b
add edx, eax
inc ecx
cmp edx, 0x2100
ja 0x417b51
movzx eax, byte [ecx]
test eax, eax
jne 0x417b3d
jmp 0x417b73
mov eax, 0x4020a0
push eax
mov edx, eax
call fcn.00415428
imul eax, dword [0x44d5a0], 0x1af8cb1e
pop ecx
mov dword [0x44d5b0], eax
call fcn.0041555f
mov ecx, dword [0x44d5a0]
imul eax, ecx, 0xe650621c
mov dword [0x44d5b0], eax
and ecx, 0xd0725c79
mov edx, 0x4020a0
push ebx
mov dword [0x44d5a0], ecx
call fcn.00415428
and dword [ebp - 0xb0], 0
xor eax, eax
pop ecx
mov byte [ebp + eax - 0x364], al
inc eax
cmp eax, 0x100
jb 0x417ba5
mov eax, dword [0x44d5b0]
xor esi, esi
imul edi, eax, 0xa4c2a8c9
mov dword [ebp - 0xac], eax
mov dword [0x44d5a0], edi
mov edi, dword [ebp - 0xb0]
xor edx, edx
mov bl, byte [ebp + esi - 0x364]
push 0xd
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x254]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x364]
mov byte [ebp + esi - 0x364], al
inc esi
mov byte [ebp + edi - 0x364], bl
cmp esi, 0x100
jb 0x417bd3
mov ecx, dword [ebp - 0xac]
xor edx, edx
xor ebx, ebx
xor esi, esi
mov edi, dword [0x44d5a0]
lea eax, [ebx + 1]
movzx ebx, al
mov al, byte [ebp + ebx - 0x364]
mov byte [ebp - 0x71], al
movzx eax, al
mov dword [ebp - 0xac], eax
add eax, edx
movzx eax, al
mov dword [ebp - 0xb0], eax
xor eax, eax
inc eax
cmp eax, 0x1fad
jg 0x417c5e
cmp byte [eax + 0x402098], 0
jne 0x417c4b
jmp 0x417c6a
sub edi, 0x54568926
mov dword [0x44d5a0], edi
or ecx, 0xa3b1b456
mov edi, 0x402098
imul eax, ecx, 0x86b44dc8
mov edx, edi
push str.kl_GL
mov dword [0x44d5b0], eax
call fcn.00415428
mov edx, dword [ebp - 0xb0]
pop ecx
mov al, byte [ebp + edx - 0x364]
mov byte [ebp + ebx - 0x364], al
mov al, byte [ebp - 0x71]
mov byte [ebp + edx - 0x364], al
movzx eax, byte [ebp + ebx - 0x364]
add eax, dword [ebp - 0xac]
movzx eax, al
mov al, byte [ebp + eax - 0x364]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x54], al
inc esi
cmp esi, 0x18
jae 0x417cdc
mov ecx, dword [0x44d5b0]
jmp 0x417c1f
mov eax, dword [0x44d5a0]
mov ebx, 0x4020a0
add eax, 0xdf234e
mov byte [ebp - 0x3c], 0
push 0x6c
mov dword [0x44d5b0], eax
mov esi, 0x1e15
mov ecx, ebx
pop edx
add esi, edx
inc ecx
cmp esi, 0xf84
ja 0x417d12
movsx edx, byte [ecx]
test edx, edx
jne 0x417cfe
jmp 0x417d2a
push ebx
mov edx, edi
call fcn.00415428
mov eax, dword [0x44d5a0]
add eax, 0x77408a0c
pop ecx
mov dword [0x44d5b0], eax
imul eax, eax, 0x63ff76f9
mov dword [0x44d5a0], eax
call fcn.0041555f
mov ecx, dword [0x44d5b0]
lea edi, [ebp - 0xbc]
mov esi, 0x401ed4
mov dword [ebp - 0x20], 0xdb2fe1a8
or ecx, 0x3af11fa5
mov byte [ebp - 0x1c], 0x6c
mov dword [0x44d5a0], ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x1c8], al
inc eax
cmp eax, 0x100
jb 0x417d6b
lea eax, [ecx - 0x3b3becbc]
xor esi, esi
mov dword [0x44d5b0], eax
xor edx, edx
mov bl, byte [ebp + esi - 0x1c8]
push 0xa
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0xbc]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1c8]
mov byte [ebp + esi - 0x1c8], al
inc esi
mov byte [ebp + edi - 0x1c8], bl
cmp esi, 0x100
jb 0x417d87
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
push 5
mov cl, byte [ebp + edi - 0x1c8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1c8]
mov byte [ebp + edi - 0x1c8], al
mov byte [ebp + ebx - 0x1c8], cl
movzx eax, byte [ebp + edi - 0x1c8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c8]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x88], al
inc esi
pop eax
cmp esi, eax
jb 0x417dcd
push dword [ebp - 0x2c]
mov edi, dword [ebp - 0xa8]
lea eax, [ebp - 0x6dc]
push dword [ebp - 0x24]
lea ecx, [ebp - 0x88]
mov byte [ebp - 0x83], 0
push dword [ebp - 0x80]
push dword [ebp - 0x6e4]
push dword [ebp - 0x6e8]
push dword [ebp - 0x6f8]
push eax
lea eax, [ebp - 0xf00]
push edi
push eax
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x54]
call fcn.0041e636
call eax
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xc0]
lea edx, [ebp - 0xf00]
add esp, 0x24
call fcn.00436f53
inc dword [ebp - 0xc4]
lea eax, [ebp - 0x700]
push eax
push dword [ebp - 0x28]
lea ecx, [ebp - 0x214]
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x40c]
call fcn.0041e636
call eax
movups xmm0, xmmword [ebp - 0x9c]
test eax, eax
jne 0x417716
mov ebx, dword [ebp - 0x200]
lea eax, [ebp - 0xf00]
push ebx
push eax
lea ecx, [ebp - 0x1f0]
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x428]
call fcn.0041e636
call eax
mov ecx, dword [ebp - 0xc0]
lea edx, [ebp - 0xf00]
call fcn.00436f53
mov ecx, dword [ebp - 0x70]
call fcn.004369fb
push eax
push dword [ebp - 0x204]
push dword [ebp - 0x70]
call fcn.004360de
mov ecx, esi
call fcn.004369fb
push eax
push dword [ebp - 0x208]
push esi
call fcn.004360de
mov ecx, edi
call fcn.004369fb
push eax
push dword [ebp - 0x20c]
push edi
call fcn.004360de
mov ecx, ebx
call fcn.004369fb
push eax
push dword [ebp - 0x38]
push ebx
call fcn.004360de
mov ecx, dword [ebp - 0x70]
add esp, 0x38
call fcn.0041e600
mov ecx, esi
call fcn.0041e600
mov ecx, edi
call fcn.0041e600
mov ecx, ebx
call fcn.0041e600
push 0x6c
mov eax, 0x822
mov ecx, 0x4020a0
pop edx
add eax, edx
inc ecx
cmp eax, 0xbd2
ja 0x417f8c
movsx edx, byte [ecx]
test edx, edx
jne 0x417f73
mov ecx, dword [0x44d5a0]
jmp 0x417f96
imul ecx, dword [0x44d5a0], 0x179ca0e5
lea eax, [ecx + 0x2136ee64]
mov dword [0x44d5b0], eax
sub ecx, 0x5b4f5436
mov dword [0x44d5a0], ecx
call fcn.0041555f
push dword [ebp - 0x28]
lea ecx, [ebp - 0x21c]
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x444]
call fcn.0041e636
call eax
mov eax, dword [0x44d5b0]
mov ecx, dword [ebp - 0xc0]
xor eax, 0xbfce7a52
mov dword [0x44d5a0], eax
call fcn.004369fb
pop edi
pop esi
pop ebx
leave
ret