Function at 0x4429c2
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, 0x2cc
push ebx
push esi
mov dword [ebp - 0xa8], ecx
mov ebx, 0xf3c
mov ecx, dword [0x44ba18]
push edi
or ecx, 0xffd2b778
mov dword [ebp - 0xa4], edx
xor eax, eax
mov dword [ebp - 0x94], 0x63
push 5
mov dword [ebp - 0x90], 0x2a
mov edx, eax
mov dword [ebp - 0x8c], 0x25
mov dword [ebp - 0x88], 0x3d
mov dword [ebp - 0x84], 0xd49
pop esi
sub ebx, dword [ebp + edx*4 - 0x94]
inc edx
cmp edx, esi
jl 0x442a24
push 0x28
or ecx, 0xc9ba158
mov dword [ebp - 0x100], ebx
pop edx
mov dword [ebp - 0x1c], ecx
mov ebx, 0x3c00
mov dword [ebp - 0x94], 0x63
mov ecx, eax
mov dword [ebp - 0x90], 0x32
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x88], 0x40
mov dword [ebp - 0x84], 0x3703
sub ebx, dword [ebp + ecx*4 - 0x94]
inc ecx
cmp ecx, esi
jl 0x442a7d
mov dword [ebp - 0x10c], ebx
mov edx, 0xd9
mov dword [ebp - 0x8c], 0x31
mov ecx, eax
mov dword [ebp - 0x88], 0x5c
mov dword [ebp - 0x84], 0x2d
sub edx, dword [ebp + ecx*4 - 0x8c]
inc ecx
cmp ecx, 3
jl 0x442ab4
push 0x45
mov dword [ebp - 0x108], edx
mov ecx, eax
pop edx
mov dword [ebp - 0x8c], 0x61
mov dword [ebp - 0x88], 8
mov dword [ebp - 0x84], 0x352
add edx, dword [ebp + ecx*4 - 0x8c]
inc ecx
cmp ecx, 3
jl 0x442aea
mov dword [ebp - 0xbc], edx
mov ecx, eax
mov edx, 0x2ee
mov dword [ebp - 0x8c], 0x2f
mov dword [ebp - 0x88], 0xf
mov dword [ebp - 0x84], 0x27e
sub edx, dword [ebp + ecx*4 - 0x8c]
inc ecx
cmp ecx, 3
jl 0x442b22
mov esi, 0x402304
mov dword [ebp - 0x110], edx
lea edi, [ebp - 0x8c]
mov dword [ebp - 0x68], 0xb76da49a
push 0xa
pop ecx
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x45], cl
mov ecx, eax
mov dword [ebp - 0x64], 0xe78e74a5
mov dword [ebp - 0x60], 0x4df763d7
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x5c], 0x648d7718
mov dword [ebp - 0x58], 0xf2c80ec6
mov dword [ebp - 0x54], 0x5f98fb2b
movsw word es:[edi], word [esi]
mov dword [ebp - 0x50], 0x5baacd
mov dword [ebp - 0x4c], 0xcddd6858
mov word [ebp - 0x48], 0x3298
movsb byte es:[edi], byte [esi]
mov byte [ebp - 0x46], 0xe
mov edi, eax
mov dword [ebp - 0x44], 0x99c65e9b
mov dword [ebp - 0x40], 0x3b165600
mov dword [ebp - 0x3c], 0xdb537696
mov dword [ebp - 0x38], 0x3b6f9016
mov dword [ebp - 0x34], 0x7c6aff34
mov dword [ebp - 0x30], 0xe574ac5c
mov dword [ebp - 0x2c], 0xe4a23677
mov byte [ebp + ecx - 0x210], cl
inc ecx
cmp ecx, 0x100
jb 0x442bc2
mov esi, eax
xor edx, edx
mov bl, byte [ebp + esi - 0x210]
push 0xa
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x8c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x210]
mov byte [ebp + esi - 0x210], al
inc esi
mov byte [ebp + edi - 0x210], bl
cmp esi, 0x100
jb 0x442bd4
xor ebx, ebx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x210]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x210]
mov byte [ebp + edi - 0x210], al
mov byte [ebp + ebx - 0x210], cl
movzx eax, byte [ebp + edi - 0x210]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x210]
xor al, byte [ebp + esi - 0x68]
mov byte [ebp + esi - 0x270], al
inc esi
cmp esi, 0x40
jb 0x442c1a
mov eax, dword [0x402500]
xor ebx, ebx
and dword [ebp - 0x1c], 0xdc1b2796
mov dword [ebp - 0x88], eax
mov ax, word [0x402504]
push 0x28
pop ecx
mov word [ebp - 0x84], ax
mov eax, ebx
mov byte [ebp - 0x230], bl
mov dword [ebp - 0x18], 0xe451ca32
mov word [ebp - 0x14], 0xa9dd
mov byte [ebp - 0x12], cl
mov dword [ebp - 0x11], 0xb3f8b548
mov dword [ebp - 0xd], 0x13678fa8
mov dword [ebp - 9], 0x9c2356db
mov dword [ebp - 5], 0x9e02fa73
mov byte [ebp - 1], 0xdb
mov byte [ebp + eax - 0x210], al
inc eax
cmp eax, 0x100
jb 0x442cc6
mov edi, ebx
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + edi - 0x210]
push 5
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x88]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x210]
mov byte [ebp + edi - 0x210], al
inc edi
mov byte [ebp + esi - 0x210], bl
cmp edi, 0x100
jb 0x442cd9
mov esi, dword [ebp - 0x1c]
xor ebx, ebx
mov dword [ebp - 0x20], ebx
mov edi, ebx
lea eax, [ebx + 1]
and esi, 0x86140ae2
movzx ebx, al
mov eax, dword [ebp - 0x20]
mov cl, byte [ebp + ebx - 0x210]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp + eax - 0x210]
mov byte [ebp + ebx - 0x210], al
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0x210], cl
movzx eax, byte [ebp + ebx - 0x210]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x210]
xor al, byte [ebp + edi - 0x18]
mov byte [ebp + edi - 0x22c], al
inc edi
cmp edi, 0x18
jb 0x442d23
mov dword [ebp - 0x1c], esi
lea edi, [ebp - 0x8c]
mov esi, 0x403d6c
mov dword [ebp - 0x20], 0xe8d76d4
xor ebx, ebx
mov byte [ebp - 0x214], bl
mov eax, ebx
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 esi, dword [ebp - 0x1c]
xor esi, 0x4026045
and esi, 0x4cdbe8cf
mov byte [ebp + eax - 0x210], al
inc eax
cmp eax, 0x100
jb 0x442db4
mov eax, 0x403f70
mov dword [ebp - 0x24], eax
mov ecx, eax
mov al, 0x70
sub al, 0x30
cmp al, 9
ja 0x442dde
inc ecx
mov al, byte [ecx]
test al, al
jne 0x442dcf
jmp 0x442de4
xor esi, 0x78f22994
or esi, 0xab25efb
mov edx, esi
mov dword [ebp - 0x1c], esi
call fcn.0043f457
mov edi, ebx
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + edi - 0x210]
push 0xa
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x8c]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x210]
mov byte [ebp + edi - 0x210], al
inc edi
mov byte [ebp + esi - 0x210], bl
cmp edi, 0x100
jb 0x442df8
xor ebx, ebx
add dword [ebp - 0x1c], 0x3cd5bee
mov dword [ebp - 0x28], ebx
mov edi, ebx
mov esi, ebx
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [ebp - 0x28]
mov cl, byte [ebp + esi - 0x210]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x28], eax
mov al, byte [ebp + eax - 0x210]
mov byte [ebp + esi - 0x210], al
mov eax, dword [ebp - 0x28]
mov byte [ebp + eax - 0x210], cl
movzx eax, byte [ebp + esi - 0x210]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x210]
xor al, byte [ebp + edi - 0x20]
mov byte [ebp + edi - 0x88], al
inc edi
cmp edi, 4
jb 0x442e48
mov esi, dword [ebp - 0x1c]
mov edi, 0x403f70
push 0x70
mov byte [ebp - 0x84], bl
mov edx, 0x2048
mov eax, edi
pop ecx
add edx, ecx
inc eax
cmp edx, 0x271
ja 0x442ecc
movsx ecx, byte [eax]
test ecx, ecx
jne 0x442eb8
jmp 0x442ed2
and esi, 0x6ae5c5e6
push 0x70
pop edx
and esi, 0x964240c
mov dword [ebp - 0x10], 8
mov dword [ebp - 0xc], 3
mov ecx, edi
mov dword [ebp - 8], 0x49
mov al, dl
mov dword [ebp - 4], 0xffffff5a
sub al, 0x30
cmp al, 9
ja 0x442f0a
inc ecx
mov al, byte [ecx]
test al, al
jne 0x442efb
jmp 0x442f10
sub esi, 0x5d2e948f
movups xmm1, xmmword [ebp - 0x10]
sub esi, 0x48eee1e9
mov dword [ebp - 0x80], 0x3ee48353
mov dword [ebp - 0x1c], esi
lea edi, [ebp - 0x14]
mov esi, 0x401fdc
mov dword [ebp - 0x7c], 0x669773b6
movaps xmm0, xmm1
mov dword [ebp - 0x78], 0xd710e100
psrldq xmm0, 8
xorps xmm2, xmm2
paddd xmm1, xmm0
mov dword [ebp - 0x74], 0xd3f40be
movsd dword es:[edi], dword [esi]
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x70], 0xb04ee87b
movd eax, xmm1
movsd dword es:[edi], dword [esi]
push 5
add eax, 0x52
mov word [ebp - 0x6c], 0x13c6
mov dword [ebp - 0xc0], eax
movsd dword es:[edi], dword [esi]
pop eax
mov byte [ebp - 0x44], al
mov eax, ebx
mov byte [ebp - 0x6a], dl
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x69], 0xe16c2dce
mov dword [ebp - 0x65], 0x398bdf8a
mov dword [ebp - 0x61], 0x616bc29
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x5d], 0xb2687b74
mov edi, ebx
mov dword [ebp - 0x59], 0x8782dcfb
mov dword [ebp - 0x55], 0x37c92595
mov dword [ebp - 0x51], 0xa890f130
mov dword [ebp - 0x4d], 0x64001aad
mov dword [ebp - 0x49], 0xa1ee1c04
mov byte [ebp - 0x45], 0xbf
mov dword [ebp - 0x43], 0xa5c338ea
mov dword [ebp - 0x3f], 0x8d087e4f
mov dword [ebp - 0x3b], 0xc8551c8
mov dword [ebp - 0x37], 0xca225811
mov dword [ebp - 0x33], 0xa5928c19
mov dword [ebp - 0x2f], 0x1c672088
mov word [ebp - 0x2b], 0x7dba
mov byte [ebp - 0x29], 0xa6
mov byte [ebp + eax - 0x210], al
inc eax
cmp eax, 0x100
jb 0x442fff
mov esi, ebx
mov dl, byte [ebp + esi - 0x210]
mov eax, esi
and eax, 0xf
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x14]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x210]
mov byte [ebp + esi - 0x210], al
inc esi
mov byte [ebp + edi - 0x210], dl
cmp esi, 0x100
jb 0x443010
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x210]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x210]
mov byte [ebp + edi - 0x210], al
mov byte [ebp + ebx - 0x210], cl
movzx eax, byte [ebp + edi - 0x210]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x210]
xor al, byte [ebp + esi - 0x80]
mov byte [ebp + esi - 0x2cc], al
inc esi
cmp esi, 0x58
jb 0x44304d
mov esi, dword [ebp - 0x1c]
add esi, 0x402707df
mov dword [ebp - 0xc], 0x12
xor ebx, ebx
mov dword [ebp - 8], 0x2d
push 0x4d
mov byte [ebp - 0x274], bl
mov eax, ebx
mov dword [ebp - 4], 0xffffff75
pop ecx
add ecx, dword [ebp + eax*4 - 0xc]
inc eax
cmp eax, 3
jl 0x4430c8
mov edi, 0x404040
mov dword [ebp - 0x1c], ecx
push 0x6f
mov ecx, edi
pop edx
lea eax, [edx - 0x30]
cmp ax, 9
ja 0x4430f7
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x4430df
jmp 0x4430fd
imul esi, esi, 0xb819e206
mov dword [ebp - 0xc], 0x5e
movaps xmm1, xmm2
mov dword [ebp - 8], 0x43
or esi, 0xa95f1fc0
mov dword [ebp - 4], 0xffffff59
mov ecx, ebx
mov dword [ebp - 0x10], 6
movups xmm0, xmmword [ebp - 0x10]
mov dword [ebp - 0xc], 0x62
mov dword [ebp - 8], 0x32
psubd xmm1, xmm0
mov dword [ebp - 4], 0x344
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [ebp - 0xc8], xmm1
mov edx, 0x403f70
mov al, 0x70
sub al, 0x30
cmp al, 9
ja 0x443177
inc edx
mov al, byte [edx]
test al, al
jne 0x443168
jmp 0x44317d
or esi, 0x8a2686e6
mov eax, dword [ebp - 0x98]
or esi, 0xcfbb96d4
add eax, dword [ebp + ecx*4 - 0xc]
inc ecx
mov dword [ebp - 0x98], eax
cmp ecx, 3
jl 0x443161
movzx eax, byte [0x44ba28]
mov edx, 0x1200
push 0
mov ecx, 0x44ba28
pop ebx
jmp 0x4431bd
add edx, eax
inc ecx
cmp edx, 0xf62
ja 0x4431c3
movzx eax, byte [ecx]
test eax, eax
jne 0x4431af
jmp 0x4431c9
imul esi, esi, 0xbf07842d
or esi, 0x7d9755df
mov dword [ebp - 0x14], 0x56
sub esi, 0x646e7688
mov dword [ebp - 0x10], 0x29
mov ecx, 0x1400
mov dword [ebp - 0xc], 0x59
mov dword [ebp - 8], 0x25
mov eax, ebx
mov dword [ebp - 4], 0x1103
sub ecx, dword [ebp + eax*4 - 0x14]
inc eax
cmp eax, 5
jl 0x4431ff
push 3
pop edx
mov dword [ebp - 0xc4], ecx
or esi, 0xea6d0454
mov ecx, ebx
mov dword [ebp - 0xc], 0x19
mov dword [ebp - 8], edx
mov eax, ebx
mov dword [ebp - 4], 0xffffffe4
sub ecx, dword [ebp + eax*4 - 0xc]
inc eax
cmp eax, edx
jl 0x44322d
push 0x26
mov dword [ebp - 0x9c], ecx
mov eax, ebx
pop ecx
mov dword [ebp - 0xc], 0x62
mov dword [ebp - 8], ecx
mov dword [ebp - 4], 0xffffff52
add ecx, dword [ebp + eax*4 - 0xc]
inc eax
cmp eax, edx
jl 0x443252
push 0x6f
mov dword [ebp - 0xd4], ecx
mov eax, edi
mov ecx, 0x2138
pop edx
add ecx, edx
lea eax, [eax + 2]
cmp ecx, 0x1979
ja 0x443281
movzx edx, word [eax]
test edx, edx
jne 0x44326b
jmp 0x443294
imul esi, esi, 0xcf8ba18a
push 0x403f70
mov edx, esi
call fcn.0043f560
pop ecx
imul esi, esi, 0xa362631c
mov edx, esi
call fcn.0043f457
push 0x59
pop ecx
mov dword [ebp - 8], ecx
mov eax, ebx
mov dword [ebp - 0xc], 0x15
mov ecx, 0x1c00
mov dword [ebp - 4], 0x1792
sub ecx, dword [ebp + eax*4 - 0xc]
inc eax
cmp eax, 3
jl 0x4432bc
push 0x22
mov dword [ebp - 0xd0], ecx
pop ecx
push 0xa
pop eax
mov dword [ebp - 8], eax
mov eax, ebx
mov dword [ebp - 4], 0x1d4
add ecx, dword [ebp + eax*4 - 8]
inc eax
cmp eax, 2
jl 0x4432de
push 3
mov dword [ebp - 0xcc], ecx
mov eax, ebx
pop ecx
mov dword [ebp - 0xc], 0x49
mov dword [ebp - 8], 0x29
mov dword [ebp - 4], 0xffffff8b
add ecx, dword [ebp + eax*4 - 0xc]
inc eax
cmp eax, 3
jl 0x443308
mov dword [ebp - 0xe0], ecx
mov eax, ebx
mov ecx, edi
inc eax
lea ecx, [ecx + 2]
cmp eax, 0x2276
jg 0x443335
cmp word [ecx], bx
jne 0x44331c
cmp eax, 0x85a
jle 0x443345
jmp 0x443340
call fcn.0043f32c
sub esi, 0x46684cbd
call fcn.0043f32c
push 0x20
pop eax
mov dword [ebp - 8], eax
movaps xmm1, xmm2
mov dword [ebp - 0x10], eax
add esi, 0x7eb02a22
mov dword [ebp - 4], 0x1b9c
or esi, 0x1f2976f7
mov dword [ebp - 0xc], 0x24
movups xmm0, xmmword [ebp - 0x10]
push 0x30
pop ecx
psubd xmm1, xmm0
mov dword [ebp - 8], 0x4e
movaps xmm0, xmm1
mov dword [ebp - 4], 0x182
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x2000
mov dword [ebp - 0xdc], eax
mov eax, ebx
add ecx, dword [ebp + eax*4 - 8]
inc eax
cmp eax, 2
jl 0x4433ad
push 0x5f
mov dword [ebp - 0xd8], ecx
mov eax, ebx
mov dword [ebp - 0xc], 0x54
mov dword [ebp - 8], 0x47
mov dword [ebp - 4], 0xffffff06
pop ecx
add ecx, dword [ebp + eax*4 - 0xc]
inc eax
cmp eax, 3
jl 0x4433d7
push 0x40
mov dword [ebp - 0xe4], ecx
or esi, 0x67c66f84
mov dword [ebp - 8], 0x39
mov eax, ebx
mov dword [ebp - 4], 0xffffff87
pop ecx
add ecx, dword [ebp + eax*4 - 8]
inc eax
cmp eax, 2
jl 0x443400
mov dword [ebp - 0xf0], ecx
mov eax, ebx
mov ecx, 0x3400
mov dword [ebp - 0xc], 0xf
mov dword [ebp - 8], 0x31
mov dword [ebp - 4], 0x2fc0
sub ecx, dword [ebp + eax*4 - 0xc]
inc eax
cmp eax, 3
jl 0x44342c
push 0xd
mov dword [ebp - 0xec], ecx
mov eax, ebx
mov dword [ebp - 8], 0x22
mov dword [ebp - 4], 0x1d1
pop ecx
add ecx, dword [ebp + eax*4 - 8]
inc eax
cmp eax, 2
jl 0x44344f
push 0x44
mov dword [ebp - 0xe8], ecx
mov eax, ebx
pop ecx
mov dword [ebp - 8], 0x16
mov dword [ebp - 4], 0xffffffa6
add ecx, dword [ebp + eax*4 - 8]
inc eax
cmp eax, 2
jl 0x443472
push 0x70
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0x10], 0x14
mov dword [ebp - 0xc], 0x10
mov dword [ebp - 8], 0x18
mov dword [ebp - 4], 0x3c1
pop ecx
sub cl, 0x30
cmp cl, 9
ja 0x4434ba
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
mov al, byte [eax]
mov cl, al
test al, al
jne 0x4434a1
jmp 0x4434c0
and esi, 0x6886d565
or esi, 0x8f249f3c
mov edx, esi
call fcn.0043f457
movups xmm0, xmmword [ebp - 0x10]
mov dword [ebp - 0x10], 0x24
lea edi, [esi - 0xd984d41]
movaps xmm1, xmm2
mov dword [ebp - 8], 0x10
paddd xmm1, xmm0
mov dword [ebp - 4], 0x118e
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
push 3
pop ecx
paddd xmm1, xmm0
mov dword [ebp - 0x14], ecx
movd eax, xmm1
push 0x3b
pop edx
add eax, ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0xf8], eax
mov ecx, 0x1400
mov eax, ebx
sub ecx, dword [ebp + eax*4 - 0x14]
inc eax
cmp eax, 5
jl 0x44352a
push 0x56
mov dword [ebp - 0xf4], ecx
mov eax, ebx
mov dword [ebp - 8], 2
mov dword [ebp - 4], 0xffffffa8
pop ecx
add ecx, dword [ebp + eax*4 - 8]
inc eax
cmp eax, 2
jl 0x44354d
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xb4], 0x4b
mov dword [ebp - 0xb0], 0xf
mov dword [ebp - 0xac], 0x236b
movups xmm0, xmmword [ebp - 0xb8]
push 7
mov dword [ebp - 4], ecx
mov ecx, 0x404040
psubd xmm2, xmm0
movaps xmm0, xmm2
psrldq xmm0, 8
paddd xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd eax, xmm2
pop esi
add eax, 0x2800
mov dword [ebp - 0x104], eax
mov eax, ebx
inc eax
lea ecx, [ecx + 2]
cmp eax, 0x1ea4
jl 0x4435d8
cmp word [ecx], bx
jne 0x4435ba
cmp eax, 0x23fe
jle 0x4435de
call fcn.0043f32c
jmp 0x4435de
and edi, 0x488c8340
lea eax, [edi - 0x2b3fa55e]
mov dword [ebp - 0xb0], 0x43
or eax, 0x8a260ff8
mov dword [ebp - 0xac], 0x1b6
mov dword [0x44ba18], eax
mov eax, ebx
add esi, dword [ebp + eax*4 - 0xb0]
inc eax
cmp eax, 2
jl 0x443604
mov ecx, dword [ebp - 0x100]
add ecx, ecx
mov dword [ebp - 0xac], esi
call fcn.0041d3cf
mov ecx, dword [ebp - 0x108]
imul ecx, dword [ebp - 0x10c]
mov dword [ebp - 0x24], eax
add ecx, ecx
call fcn.0041d3cf
mov ecx, dword [ebp - 0x110]
mov edi, eax
imul ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x20], edi
add ecx, ecx
call fcn.0041d3cf
cmp dword [ebp - 0x24], 0
mov esi, eax
mov dword [ebp - 0x28], esi
je 0x443898
test esi, esi
je 0x443898
test edi, edi
je 0x443898
lea ecx, [ebp - 0x270]
call fcn.004342df
movzx ecx, byte [0x44ba28]
mov edi, eax
mov edx, 0x2673
test ecx, ecx
je 0x4436ab
mov eax, 0x44ba28
add edx, ecx
inc eax
cmp edx, 0x2076
ja 0x4437cc
movzx ecx, byte [eax]
test ecx, ecx
jne 0x443695
mov eax, dword [0x44ba18]
push dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov ecx, 0x4ecda8ef
push dword [ebp - 0x24]
imul eax, eax, 0x20de1527
push dword [ebp - 0xa4]
push edi
push esi
sub ecx, eax
mov dword [0x44ba18], ecx
lea ecx, [ebp - 0x88]
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x22c]
call fcn.0041d4c4
call eax
mov ecx, edi
call fcn.004348b9
push eax
push dword [ebp - 0xc0]
push edi
call fcn.0043423a
mov ecx, edi
call fcn.0041d467
mov ecx, esi
call fcn.004348b9
mov edx, dword [ebp + 0x14]
push eax
call fcn.0041b5fd
push dword [ebp - 0x1c]
mov edi, dword [ebp + 0x10]
lea edx, [ebp - 0x2cc]
push dword [ebp + 0x14]
mov ecx, dword [ebp - 0xa8]
push edi
push esi
call fcn.00438420
mov esi, eax
mov eax, dword [ebp - 0xc4]
imul eax, dword [ebp - 0x98]
add eax, eax
push eax
push dword [ebp - 0xc8]
push dword [ebp + 0xc]
call fcn.0043423a
add esp, 0x40
cmp esi, dword [ebp - 0x9c]
jne 0x4437db
push 0x59
mov dword [ebp - 0xa0], 0x44
mov dword [ebp - 0x9c], 0xffffff63
pop eax
add eax, dword [ebp + ebx*4 - 0xa0]
inc ebx
cmp ebx, 2
jl 0x443777
mov ecx, edi
mov dword [ebp - 0x9c], eax
call fcn.004348b9
mov edx, eax
call fcn.0040c4b5
mov ecx, edi
call fcn.004348b9
mov ecx, dword [ebp - 0x20]
mov edx, edi
push eax
call fcn.004344c5
mov esi, dword [ebp - 0x28]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x9c]
push esi
call fcn.004179ea
mov edx, dword [ebp + 0x14]
mov ecx, esi
push eax
call fcn.0041b5fd
add esp, 0xc
jmp 0x4437de
mov eax, dword [0x44ba18]
xor eax, 0x95396bf3
jmp 0x4436b0
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0xcc]
imul eax, dword [ebp - 0xd0]
add eax, eax
push eax
push dword [ebp - 0xd4]
push edi
call fcn.0043423a
mov eax, dword [ebp - 0xd8]
imul eax, dword [ebp - 0xdc]
add eax, eax
push eax
push dword [ebp - 0xe0]
push dword [ebp + 0x14]
call fcn.0043423a
push dword [ebp + 0x14]
mov edx, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xa8]
push edi
push dword [ebp + 0xc]
push dword [ebp - 0xe4]
push esi
push dword [ebp + 8]
call fcn.00439e32
mov eax, dword [ebp - 0xe8]
imul eax, dword [ebp - 0xec]
add eax, eax
push eax
push dword [ebp - 0xf0]
push dword [ebp + 0xc]
call fcn.0043423a
mov eax, dword [ebp - 0xf4]
imul eax, dword [ebp - 0xf8]
add eax, eax
push eax
push dword [ebp - 0xfc]
push dword [ebp + 0x14]
call fcn.0043423a
mov eax, dword [ebp - 0xac]
add esp, 0x48
imul eax, dword [ebp - 0x104]
add eax, eax
push eax
push dword [ebp - 4]
push edi
call fcn.0043423a
mov edi, dword [ebp - 0x20]
add esp, 0xc
mov ecx, edi
call fcn.0041d467
mov ecx, esi
call fcn.0041d467
pop edi
pop esi
pop ebx
leave
ret