Function at 0x42b3f7
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, 0x528
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], edx
push 5
mov dword [ebp - 0x18], ecx
mov eax, ebx
mov ecx, ebx
mov dword [ebp - 0x4c], 0x1e
mov dword [ebp - 0x48], 0x2e
mov dword [ebp - 0x44], 0x55
mov dword [ebp - 0x40], 0x1f
mov dword [ebp - 0x3c], 0xffffff40
pop edx
sub ecx, dword [ebp + eax*4 - 0x4c]
inc eax
cmp eax, edx
jl 0x42b435
mov dword [ebp - 0x98], ecx
mov eax, ebx
inc eax
cmp eax, 0x12b7
jl 0x42b45d
cmp byte [eax + 0x403310], bl
jne 0x42b446
mov eax, dword [0x44a68c]
jmp 0x42b467
mov eax, dword [0x44a68c]
xor eax, 0x9d71cef7
mov esi, 0x401d48
mov dword [ebp - 0x64], 0x73cad31e
lea edi, [ebp - 0x44]
mov dword [ebp - 0x60], 0x4d7ca889
xor eax, 0x20a870b2
mov dword [ebp - 0x5c], 0x6c2ce84c
and eax, 0x70ac79b2
mov dword [ebp - 0x58], 0xdf54ba2d
movsd dword es:[edi], dword [esi]
mov dword [ebp - 8], eax
mov eax, ebx
mov dword [ebp - 0x54], 0xea63826b
mov dword [ebp - 0x50], 0x703f28e
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, ebx
mov byte [ebp + eax - 0x1c0], al
inc eax
cmp eax, 0x100
jb 0x42b4af
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x1c0]
push 0xa
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x44]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1c0]
mov byte [ebp + esi - 0x1c0], al
inc esi
mov byte [ebp + edi - 0x1c0], bl
cmp esi, 0x100
jb 0x42b4c0
mov esi, dword [ebp - 8]
xor ebx, ebx
mov dword [ebp - 0xc], ebx
mov edi, ebx
lea eax, [ebx + 1]
imul esi, esi, 0xbc098c65
movzx ebx, al
mov eax, dword [ebp - 0xc]
mov cl, byte [ebp + ebx - 0x1c0]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x1c0]
mov byte [ebp + ebx - 0x1c0], al
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x1c0], cl
movzx eax, byte [ebp + ebx - 0x1c0]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c0]
xor al, byte [ebp + edi - 0x64]
mov byte [ebp + edi - 0x1dc], al
inc edi
cmp edi, 0x18
jb 0x42b507
lea eax, [esi + 0x5497cec4]
mov dword [ebp - 4], 0x7b275d01
mov esi, 0x401d30
mov dword [ebp - 8], eax
lea edi, [ebp - 0x40]
xor ebx, ebx
mov byte [ebp - 0x1c4], bl
mov eax, ebx
mov dword [ebp - 0xc], ebx
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x1c0], al
inc eax
cmp eax, 0x100
jb 0x42b58e
mov esi, dword [ebp - 8]
mov edi, ebx
mov dword [ebp - 0x38], 6
xor edx, edx
mov cl, byte [ebp + edi - 0x1c0]
mov eax, edi
mov byte [ebp - 0x31], cl
div dword [ebp - 0x38]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x40]
mov edx, ebx
add eax, dword [ebp - 0xc]
add ecx, eax
movzx eax, cl
mov dword [ebp - 0xc], eax
inc edx
cmp edx, 0x5d8
jg 0x42b720
cmp byte [edx + 0x403310], bl
jne 0x42b5cf
imul esi, esi, 0x2fd66f5d
mov ecx, dword [ebp - 0xc]
and esi, 0x144a0c73
mov al, byte [ebp + ecx - 0x1c0]
mov byte [ebp + edi - 0x1c0], al
inc edi
mov al, byte [ebp - 0x31]
mov byte [ebp + ecx - 0x1c0], al
cmp edi, 0x100
jb 0x42b5a9
mov dword [ebp - 8], esi
mov edi, ebx
mov esi, ebx
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x1c0]
movzx edx, cl
lea eax, [edx + esi]
movzx esi, al
mov al, byte [ebp + esi - 0x1c0]
mov byte [ebp + ebx - 0x1c0], al
mov byte [ebp + esi - 0x1c0], cl
movzx eax, byte [ebp + ebx - 0x1c0]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c0]
xor al, byte [ebp + edi - 4]
mov byte [ebp + edi - 0xb8], al
inc edi
cmp edi, 4
jb 0x42b61b
mov esi, dword [ebp - 8]
xor ebx, ebx
push 0x39
mov byte [ebp - 0xb4], bl
mov eax, ebx
pop ecx
mov dword [ebp - 0x40], 0x11
sub esi, 0x711806ea
mov dword [ebp - 0x3c], 0xffffffb6
add ecx, dword [ebp + eax*4 - 0x40]
inc eax
cmp eax, 2
jl 0x42b68f
mov dword [ebp - 0x44], 0x1a
xorps xmm1, xmm1
mov dword [ebp - 0x40], 0x1d
mov eax, ebx
mov dword [ebp - 0x3c], 0xffffff90
mov dword [ebp - 0x48], 0x45
movups xmm0, xmmword [ebp - 0x48]
push 0x2a
pop edi
psubd xmm1, xmm0
mov dword [ebp - 0x44], 0x1c
movaps xmm0, xmm1
mov dword [ebp - 0x40], 0x5e
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x3c], 0xffffff5c
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd edx, xmm1
add edx, 0xd
add edi, dword [ebp + eax*4 - 0x44]
inc eax
cmp eax, 3
jl 0x42b6f9
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xc], eax
mov eax, ebx
inc eax
cmp eax, 0xe16
je 0x42b744
cmp byte [eax + 0x40324c], bl
jne 0x42b70e
jmp 0x42b74a
push esi
call fcn.0042a9be
xor esi, 0x4d92681a
pop ecx
cmp edx, 0x24f8
jle 0x42b5e4
add esi, 0x9df48b0
jmp 0x42b5ea
xor esi, 0x23c81f6c
mov eax, dword [ebp + 0xc]
xor esi, 0x9fffeff7
mov dword [ebp - 0xbc], eax
or esi, 0xacfc8a4
lea eax, [ebp - 0xc]
mov dword [0x44a68c], esi
push eax
push edx
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0xb8]
push 0x80000001
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x1dc]
call fcn.0041d4c4
call eax
test eax, eax
jne 0x42c0f9
push 6
pop eax
mov byte [ebp - 0x8f], al
mov edi, ebx
mov byte [ebp - 0x6a], al
mov eax, dword [0x402ee4]
mov dword [ebp - 0x40], eax
mov ax, word [0x402ee8]
mov word [ebp - 0x3c], ax
mov eax, ebx
mov byte [ebp - 0x90], 0xd2
mov dword [ebp - 0x8e], 0x4a7e0945
mov dword [ebp - 0x8a], 0xb660cd3f
mov dword [ebp - 0x86], 0x536497f8
mov dword [ebp - 0x82], 0x4925ac38
mov dword [ebp - 0x7e], 0xf8d3a412
mov dword [ebp - 0x7a], 0x11a02884
mov dword [ebp - 0x76], 0xc60d33c0
mov dword [ebp - 0x72], 0xe1a57476
mov dword [ebp - 0x6e], 0x34268d7b
mov dword [ebp - 0x69], 0x784a04ab
mov byte [ebp - 0x65], 0x8f
mov byte [ebp + eax - 0x1c0], al
inc eax
cmp eax, 0x100
jb 0x42b814
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x1c0]
push 5
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x40]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1c0]
mov byte [ebp + esi - 0x1c0], al
inc esi
mov byte [ebp + edi - 0x1c0], bl
cmp esi, 0x100
jb 0x42b825
xor ebx, ebx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1c0]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1c0]
mov byte [ebp + edi - 0x1c0], al
mov byte [ebp + ebx - 0x1c0], cl
movzx eax, byte [ebp + edi - 0x1c0]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1c0]
xor al, byte [ebp + esi - 0x90]
mov byte [ebp + esi - 0x428], al
inc esi
cmp esi, 0x2c
jb 0x42b868
push 5
pop eax
mov ecx, eax
mov dword [ebp + 0xc], 0xc11864ea
mov esi, 0x402e60
lea edi, [ebp - 0xa8]
xor ebx, ebx
mov al, 0x52
rep movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x3fc], bl
mov ecx, 0x403310
sub al, 0x30
cmp al, 9
ja 0x42b8f8
inc ecx
mov al, byte [ecx]
test al, al
jne 0x42b8e3
mov esi, dword [0x44a68c]
jmp 0x42b902
imul esi, dword [0x44a68c], 0x11cda1c2
add esi, 0x7a3f19b5
sub esp, 0xc
mov edx, esi
mov ecx, esi
call fcn.0042a8e7
add esp, 0xc
mov dword [ebp - 8], ebx
mov eax, ebx
mov byte [ebp + eax - 0x528], al
inc eax
cmp eax, 0x100
jb 0x42b91c
mov edi, ebx
xor edx, edx
mov bl, byte [ebp + edi - 0x528]
push 0x13
mov eax, edi
imul esi, esi, 0xc7c45b15
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0xa8]
add eax, dword [ebp - 8]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 8], ecx
mov al, byte [ebp + ecx - 0x528]
mov byte [ebp + edi - 0x528], al
inc edi
mov byte [ebp + ecx - 0x528], bl
cmp edi, 0x100
jb 0x42b92d
xor ebx, ebx
mov dword [ebp - 8], esi
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x528]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x528]
mov byte [ebp + edi - 0x528], al
mov byte [ebp + ebx - 0x528], cl
movzx eax, byte [ebp + edi - 0x528]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x528]
xor al, byte [ebp + esi + 0xc]
mov byte [ebp + esi - 0x40], al
inc esi
cmp esi, 4
jb 0x42b980
xor ebx, ebx
mov dword [ebp - 0xa0], 0x16
push 0x4d
mov byte [ebp - 0x3c], bl
mov eax, ebx
mov dword [ebp - 0x9c], 0x5d
mov dword [ebp - 0x98], 0xffffff40
pop ecx
add ecx, dword [ebp + eax*4 - 0xa0]
inc eax
cmp eax, 3
jl 0x42b9f5
mov dword [ebp - 0xb0], ecx
mov eax, ebx
mov ecx, ebx
mov dword [ebp - 0x60], 0x17
mov dword [ebp - 0x5c], 0xd
mov dword [ebp - 0x58], 0x5f
mov dword [ebp - 0x54], 0x62
mov dword [ebp - 0x50], 0xffffff1b
sub ecx, dword [ebp + eax*4 - 0x60]
inc eax
cmp eax, 5
jl 0x42ba2f
mov esi, 0x4028d0
mov dword [ebp - 0xc0], ecx
lea edi, [ebp - 0x9c]
mov dword [ebp - 0x30], 0xa4a6bd
mov dword [ebp - 0x2c], 0x463dbd31
mov eax, ebx
mov dword [ebp - 0x28], 0xbdb65e7c
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x24], 0xd9596190
mov dword [ebp - 0x20], 0xaa9d3799
mov dword [ebp - 0x1c], 0xc6fc77ff
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
inc eax
cmp eax, 0x1c06
je 0x42ba9c
cmp byte [eax + 0x40324c], bl
jne 0x42ba7a
mov esi, dword [ebp - 8]
cmp eax, 0xeea
jg 0x42bab4
add esi, 0xa71aa317
jmp 0x42bac1
mov esi, dword [ebp - 8]
sub esp, 0xc
mov edx, esi
mov ecx, esi
call fcn.0042a8e7
add esp, 0xc
imul esi, esi, 0xd86c8ac8
push esi
call fcn.0042a9be
pop ecx
imul esi, esi, 0x3b10c3
add esi, 0x16cac25c
mov eax, ebx
mov dword [ebp + 0xc], esi
mov byte [ebp + eax - 0x2f8], al
inc eax
cmp eax, 0x100
jb 0x42bacc
mov edi, ebx
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + edi - 0x2f8]
push 6
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x9c]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x2f8]
mov byte [ebp + edi - 0x2f8], al
inc edi
mov byte [ebp + esi - 0x2f8], bl
cmp edi, 0x100
jb 0x42badf
mov esi, dword [ebp + 0xc]
xor ebx, ebx
mov edx, ebx
mov ecx, ebx
mov edi, ebx
lea eax, [ecx + 1]
movzx ecx, al
mov dword [ebp - 0x98], ecx
mov al, byte [ebp + ecx - 0x2f8]
mov byte [ebp + 0xf], al
movzx eax, al
mov dword [ebp - 0x38], eax
add eax, edx
movzx eax, al
mov dword [ebp - 0x18], eax
mov al, byte [ebp + eax - 0x2f8]
mov byte [ebp + ecx - 0x2f8], al
mov eax, ebx
inc eax
cmp eax, 0x245
jl 0x42bb70
cmp byte [eax + 0x403310], bl
jne 0x42bb5e
jmp 0x42bb7d
push esi
call fcn.0042a9be
pop ecx
xor esi, 0xf770ad82
imul esi, esi, 0x7e512cc
sub esp, 0xc
add esi, 0x57b0c6df
mov edx, esi
mov ecx, esi
call fcn.0042a96a
mov edx, dword [ebp - 0x18]
add esp, 0xc
mov ecx, dword [ebp - 0x98]
mov al, byte [ebp + 0xf]
mov byte [ebp + edx - 0x2f8], al
movzx eax, byte [ebp + ecx - 0x2f8]
add eax, dword [ebp - 0x38]
movzx eax, al
mov al, byte [ebp + eax - 0x2f8]
xor al, byte [ebp + edi - 0x30]
mov byte [ebp + edi - 0x1f8], al
inc edi
cmp edi, 0x18
jb 0x42bb2a
mov dword [ebp + 0xc], esi
lea edi, [ebp - 0xa0]
mov esi, 0x402268
mov byte [ebp - 0x1e0], bl
mov dword [ebp - 4], 0xcde4bf96
mov ecx, 0x403310
mov al, 0x52
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub al, 0x30
cmp al, 9
ja 0x42bc0c
inc ecx
mov al, byte [ecx]
test al, al
jne 0x42bbfa
mov esi, dword [ebp + 0xc]
jmp 0x42bc15
mov esi, dword [ebp + 0xc]
and esi, 0x82d871a
and esi, 0xfb0a51ac
mov eax, ebx
mov dword [ebp + 0xc], esi
mov byte [ebp + eax - 0x3f8], al
inc eax
cmp eax, 0x100
jb 0x42bc20
mov edi, ebx
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + edi - 0x3f8]
push 0xb
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0xa0]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x3f8]
mov byte [ebp + edi - 0x3f8], al
inc edi
mov byte [ebp + esi - 0x3f8], bl
cmp edi, 0x100
jb 0x42bc33
mov esi, dword [ebp + 0xc]
mov ecx, 0x403310
mov al, 0x52
sub al, 0x30
cmp al, 9
ja 0x42bc8c
inc ecx
mov al, byte [ecx]
test al, al
jne 0x42bc7d
jmp 0x42bc92
sub esi, 0x6f510220
or esi, 0xfeb6b9a6
push esi
mov dword [0x44a68c], esi
call fcn.0042a9be
xor ebx, ebx
pop ecx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x3f8]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x3f8]
mov byte [ebp + edi - 0x3f8], al
mov byte [ebp + ebx - 0x3f8], cl
movzx eax, byte [ebp + edi - 0x3f8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x3f8]
xor al, byte [ebp + esi - 4]
mov byte [ebp + esi - 0x18], al
inc esi
cmp esi, 4
jb 0x42bcab
xor ebx, ebx
mov dword [ebp - 0x9c], 0x47
push 0x2e
mov byte [ebp - 0x14], bl
mov eax, ebx
mov dword [ebp - 0x98], 0xffffff8b
pop esi
add esi, dword [ebp + eax*4 - 0x9c]
inc eax
cmp eax, 2
jl 0x42bd16
lea eax, [ebp - 0xbc]
push eax
push dword [ebp + 8]
lea ecx, [ebp - 0x40]
push dword [ebp - 0xc0]
push dword [ebp - 0xb0]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x428]
call fcn.0041d4c4
call eax
test eax, eax
jne 0x42c0e6
mov esi, dword [0x44a68c]
lea edi, [ebp - 0xa8]
xor esi, 0x14e6a60d
mov dword [ebp - 0x30], 0xd51bbaa6
push 5
mov dword [ebp + 0xc], esi
mov esi, 0x401be4
pop eax
mov ecx, eax
mov dword [ebp - 0x2c], 0x92a6d200
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x28], 0x9288d83c
mov ecx, 0x40324c
mov dword [ebp - 0x24], 0xb39f3af4
mov al, 0x25
mov dword [ebp - 0x20], 0xa4bc851b
mov dword [ebp - 0x1c], 0xa14cd74f
movsw word es:[edi], word [esi]
sub al, 0x30
cmp al, 9
ja 0x42bdc4
inc ecx
mov al, byte [ecx]
test al, al
jne 0x42bdb2
mov esi, dword [ebp + 0xc]
jmp 0x42bdcd
mov esi, dword [ebp + 0xc]
xor esi, 0xaf21cf55
or esi, 0x2fef2175
sub esp, 0xc
mov edx, esi
mov ecx, esi
call fcn.0042a96a
add esp, 0xc
mov dword [ebp - 8], ebx
mov edx, 0x13b1
mov eax, 0x403310
push 0x52
pop ecx
add edx, ecx
inc eax
cmp edx, 0x1327
ja 0x42be06
movsx ecx, byte [eax]
test ecx, ecx
jne 0x42bdf2
jmp 0x42be13
or esi, 0x2ccfb0a5
push esi
call fcn.0042a9be
pop ecx
xor esi, 0x6f4368b0
mov eax, ebx
add esi, 0x2e6a517
mov byte [ebp + eax - 0x3f8], al
inc eax
cmp eax, 0x100
jb 0x42be21
mov edi, ebx
mov eax, ebx
inc eax
cmp eax, 0x590
jg 0x42be46
cmp byte [eax + 0x40324c], bl
jne 0x42be34
jmp 0x42be5b
sub esp, 0xc
mov edx, esi
mov ecx, esi
call fcn.0042a96a
add esp, 0xc
or esi, 0x15a8dbaa
xor edx, edx
mov dword [ebp - 0x10], 0x15
mov eax, edi
mov cl, byte [ebp + edi - 0x3f8]
div dword [ebp - 0x10]
mov byte [ebp + 0xf], cl
add esi, 0xd6f52d15
movzx ecx, cl
xor esi, 0xd6f12559
push 0x6f
movzx eax, byte [ebp + edx - 0xa8]
mov edx, 0x14ab
add eax, dword [ebp - 8]
add ecx, eax
movzx eax, cl
mov dword [ebp - 8], eax
pop ecx
mov al, byte [ebp + eax - 0x3f8]
mov byte [ebp + edi - 0x3f8], al
mov eax, 0x403410
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x1c89
ja 0x42bec6
movzx ecx, word [eax]
test ecx, ecx
jne 0x42beb0
jmp 0x42becc
or esi, 0xfb6f1fe2
mov ecx, dword [ebp - 8]
add esi, 0x4c29f001
mov al, byte [ebp + 0xf]
inc edi
mov byte [ebp + ecx - 0x3f8], al
cmp edi, 0x100
jb 0x42be32
mov dword [ebp + 0xc], esi
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x3f8]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x3f8]
mov byte [ebp + edi - 0x3f8], al
mov byte [ebp + ebx - 0x3f8], cl
movzx eax, byte [ebp + edi - 0x3f8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x3f8]
xor al, byte [ebp + esi - 0x30]
mov byte [ebp + esi - 0x80], al
inc esi
cmp esi, 0x18
jb 0x42bef3
push 5
pop eax
mov ecx, eax
mov dword [ebp - 4], 0xe3f1dab6
mov esi, 0x402eec
lea edi, [ebp - 0x64]
rep movsd dword es:[edi], dword [esi]
xor ebx, ebx
mov byte [ebp - 0x68], bl
mov eax, ebx
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x2f8], al
inc eax
cmp eax, 0x100
jb 0x42bf5e
mov esi, dword [ebp + 0xc]
mov edi, ebx
xor edx, edx
mov dword [ebp - 0x10], 0x14
mov eax, edi
mov cl, byte [ebp + edi - 0x2f8]
div dword [ebp - 0x10]
mov byte [ebp + 0xf], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x64]
add eax, ebx
add ecx, eax
mov al, 0x52
movzx ebx, cl
mov ecx, 0x403310
sub al, 0x30
cmp al, 9
ja 0x42bfaf
inc ecx
mov al, byte [ecx]
test al, al
jne 0x42bfa0
jmp 0x42bfb5
add esi, 0x2a287517
sub esp, 0xc
lea edx, [esi - 0x62031e1e]
lea ecx, [esi - 0x62031e1e]
call fcn.0042a8e7
mov al, byte [ebp + ebx - 0x2f8]
add esp, 0xc
mov byte [ebp + edi - 0x2f8], al
add esi, 0xd5d61a95
mov al, byte [ebp + 0xf]
inc edi
mov byte [ebp + ebx - 0x2f8], al
cmp edi, 0x100
jb 0x42bf72
xor ebx, ebx
mov edx, ebx
mov edi, ebx
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x2f8]
movzx eax, cl
mov dword [ebp + 0xc], eax
add eax, edx
movzx edx, al
add esi, 0xd71a696b
mov dword [ebp - 0x10], edx
mov al, byte [ebp + edx - 0x2f8]
mov byte [ebp + ebx - 0x2f8], al
mov al, 0x25
mov byte [ebp + edx - 0x2f8], cl
mov ecx, 0x40324c
sub al, 0x30
cmp al, 9
ja 0x42c049
inc ecx
mov al, byte [ecx]
test al, al
jne 0x42c03a
jmp 0x42c04f
imul esi, esi, 0xf4736e54
or esi, 0xd8e09bc8
sub esp, 0xc
mov edx, esi
mov ecx, esi
call fcn.0042a96a
movzx eax, byte [ebp + ebx - 0x2f8]
add esp, 0xc
add eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x10]
movzx eax, al
mov al, byte [ebp + eax - 0x2f8]
xor al, byte [ebp + edi - 4]
mov byte [ebp + edi - 0xb0], al
inc edi
cmp edi, 4
jb 0x42bffd
push 0x12
pop eax
xor ebx, ebx
mov dword [0x44a68c], esi
push 0x37
mov byte [ebp - 0xac], bl
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], 0xffffffa6
pop esi
add esi, dword [ebp + ebx*4 - 0xa0]
inc ebx
cmp ebx, 3
jl 0x42c0bb
push dword [ebp - 0xc]
lea ecx, [ebp - 0xb0]
call fcn.0041d4e5
lea ecx, [ebp - 0x80]
mov edx, eax
call fcn.0041d4c4
call eax
mov eax, esi
jmp 0x42c0fb
push dword [ebp - 0xc]
lea ecx, [ebp - 0x18]
call fcn.0041d4e5
lea ecx, [ebp - 0x1f8]
jmp 0x42c0d9
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret