Function at 0x431f80
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 0x28
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0x18]
push 0
push 0x5da660
push 0x5da628
push 0
push eax
mov byte [eax + 4], 1
call fcn.0056a77a
mov esi, eax
add esp, 0x14
test esi, esi
je 0x432d14
mov eax, dword [esi + 0x48]
test eax, eax
mov dword [ebp - 8], eax
jne 0x432672
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, esi
call edx
mov ecx, dword [edi + 4]
mov edx, dword [ebp + 0xc]
imul ecx, dword [edx + 0x24]
add ecx, dword [edi]
mov edx, dword [ebx]
lea eax, [eax + ecx*4]
mov dword [ebp - 4], eax
mov eax, dword [edx + 0x7c]
mov ecx, ebx
call eax
mov ecx, dword [ebx + 0x24]
imul ecx, dword [ebp + 0x14]
add ecx, dword [ebp + 0x10]
cmp byte [ebx + 0x52], 0
lea edx, [eax + ecx*4]
mov dword [ebp + 0x14], edx
jne 0x432226
cmp byte [ebx + 0x51], 0
jne 0x432226
mov ebx, dword [ebp + 0x1c]
mov eax, 0x5dd088
mov ecx, ebx
call fcn.00404ae0
test al, al
jne 0x432229
mov eax, dword [esi]
mov edx, dword [eax + 0x48]
mov ecx, esi
call edx
mov ecx, dword [edi + 4]
mov edx, dword [ebp + 0xc]
imul ecx, dword [edx + 0x24]
add ecx, dword [edi]
mov dword [ebp - 0x14], 0
add ecx, eax
cmp dword [edi + 0xc], 0
mov dword [ebp - 0x10], ecx
jle 0x432d0a
nop
mov eax, dword [ebp + 0x18]
mov edi, dword [eax + 8]
test edi, edi
mov esi, dword [ebp + 0x14]
mov edx, dword [ebp - 4]
mov dword [ebp + 0x10], ecx
mov dword [ebp - 8], edi
jle 0x4321db
lea ebx, [ebx]
mov eax, dword [ebp + 0x10]
mov al, byte [eax]
mov ecx, dword [edx]
movzx ebx, al
cmp ebx, edi
mov byte [ebp + 0x1f], al
jle 0x432087
mov al, byte [ebp - 8]
mov byte [ebp + 0x1f], al
mov ebx, ecx
shr ebx, 0x18
mov edi, 0x100
sub edi, ebx
cmp edi, 1
mov dword [ebp - 0x20], edi
jne 0x4320bc
movzx eax, al
test eax, eax
jle 0x4321c5
mov ecx, eax
mov edi, dword [edx]
mov dword [esi], edi
add esi, 4
add edx, 4
sub ecx, 1
jne 0x4320a8
jmp 0x4321c5
cmp edi, 0x100
jne 0x4320d7
movzx eax, al
lea ecx, [eax*4]
add esi, ecx
add edx, ecx
jmp 0x4321c5
mov eax, 0x100
sub eax, edi
mov dword [ebp - 0xc], eax
mov eax, dword [esi]
mov ebx, eax
and ebx, 0xff00ff
imul ebx, edi
mov edi, ecx
and eax, 0xff00
imul eax, dword [ebp - 0x20]
and edi, 0xff00ff
imul edi, dword [ebp - 0xc]
and ecx, 0xff00
imul ecx, dword [ebp - 0xc]
shr ebx, 8
shr eax, 8
shr edi, 8
add ebx, edi
shr ecx, 8
add eax, ecx
and ebx, 0xffff00ff
and eax, 0xff00
or ebx, eax
movzx eax, byte [ebp + 0x1f]
or ebx, 0xff000000
mov dword [esi], ebx
add edx, 4
add esi, 4
cmp eax, 1
mov dword [ebp - 0x1c], eax
jle 0x4321c5
add eax, 0xffffffff
mov dword [ebp + 0x1c], eax
mov edi, edi
mov ecx, dword [edx]
mov eax, dword [esi]
add edx, 4
mov dword [ebp - 0xc], edx
mov edx, ecx
mov ebx, eax
shr edx, 0x18
and ebx, 0xff00ff
mov edi, 0x100
sub edi, edx
imul ebx, edi
mov dword [ebp - 0x20], edi
mov edi, ecx
and eax, 0xff00
imul eax, dword [ebp - 0x20]
and edi, 0xff00ff
and ecx, 0xff00
imul edi, edx
imul ecx, edx
mov edx, dword [ebp - 0xc]
shr ebx, 8
shr eax, 8
shr edi, 8
add ebx, edi
shr ecx, 8
add eax, ecx
and ebx, 0xffff00ff
and eax, 0xff00
or ebx, eax
or ebx, 0xff000000
mov dword [esi], ebx
add esi, 4
sub dword [ebp + 0x1c], 1
jne 0x432150
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 8]
add dword [ebp + 0x10], eax
sub edi, eax
test edi, edi
mov dword [ebp - 8], edi
jg 0x432070
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x24]
mov edx, dword [ebp + 0x14]
lea eax, [edx + eax*4]
mov edx, dword [ebp + 0xc]
mov dword [ebp + 0x14], eax
mov eax, dword [edx + 0x24]
mov edx, dword [ebp - 4]
lea edx, [edx + eax*4]
add ecx, eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], edx
mov edx, dword [ebp + 0x18]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], eax
jl 0x432050
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ebx, dword [ebp + 0x1c]
mov eax, ebx
call fcn.00404aa0
test al, al
je 0x43237d
cmp dword [edi + 0xc], 0
mov dword [ebp - 0x10], 0
jle 0x432d0a
lea esp, [esp]
cmp dword [edi + 8], 0
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 4]
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x14], 0
jle 0x43233a
lea ebx, [ebx]
mov ebx, dword [edx]
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
add edx, 4
mov eax, ebx
shr eax, 0x18
mov dword [ebp - 0x20], edx
mov dword [ebp + 0x1c], eax
je 0x432324
mov edi, ecx
shr edi, 0x18
mov esi, 0xff
sub esi, edi
imul esi, eax
mov eax, 0x80808081
imul esi
mov eax, dword [ebp + 0x1c]
add edx, esi
imul eax, eax, 0xff
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, edi
cdq
idiv esi
mov edi, ecx
and edi, 0xff00ff
mov edx, 0x100
and ecx, 0xff00
shl esi, 0x18
sub edx, eax
mov dword [ebp + 0x1c], eax
imul edi, edx
imul ecx, edx
mov edx, dword [ebp - 0x20]
mov eax, ebx
and eax, 0xff00ff
imul eax, dword [ebp + 0x1c]
and ebx, 0xff00
imul ebx, dword [ebp + 0x1c]
shr edi, 8
shr eax, 8
add edi, eax
mov eax, dword [ebp + 0x10]
shr ecx, 8
shr ebx, 8
and edi, 0xff00ff
add ecx, ebx
and ecx, 0xff00
or edi, ecx
or edi, esi
mov dword [eax], edi
mov edi, dword [ebp + 0x18]
add eax, 4
mov dword [ebp + 0x10], eax
jmp 0x432328
add dword [ebp + 0x10], 4
mov eax, dword [ebp - 0x14]
add eax, 1
cmp eax, dword [edi + 8]
mov dword [ebp - 0x14], eax
jl 0x432270
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x24]
mov eax, dword [ebp + 0x14]
lea ecx, [eax + edx*4]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x24]
mov dword [ebp + 0x14], ecx
mov ecx, dword [ebp - 4]
lea edx, [ecx + eax*4]
mov eax, dword [ebp - 0x10]
add eax, 1
cmp eax, dword [edi + 0xc]
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], eax
jl 0x432250
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 4]
cmp ecx, eax
mov ebx, dword [ebx + 8]
mov dword [ebp + 0x10], ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], ebx
jne 0x4324fd
cmp eax, ebx
jne 0x4324fd
cmp dword [edi + 0xc], 0
mov dword [ebp - 0xc], 0
jle 0x432d0a
cmp dword [edi + 8], 0
mov ecx, dword [ebp + 0x14]
mov esi, dword [ebp - 4]
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x10], 0
jle 0x4324ba
nop
mov edx, dword [ebp + 0x1c]
mov ebx, dword [edx]
mov ecx, dword [esi]
mov edx, ecx
shr edx, 0x18
imul edx, dword [ebp - 0x18]
mov eax, 0x80808081
mul edx
add esi, 4
shr edx, 7
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x14], edx
je 0x4324a4
mov edi, ebx
shr edi, 0x18
mov esi, 0xff
sub esi, edi
imul esi, edx
mov eax, 0x80808081
imul esi
mov eax, dword [ebp - 0x14]
add edx, esi
imul eax, eax, 0xff
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, edi
cdq
idiv esi
mov edx, 0x100
mov edi, ebx
and edi, 0xff00ff
and ebx, 0xff00
shl esi, 0x18
sub edx, eax
mov dword [ebp - 0x14], edx
imul edi, dword [ebp - 0x14]
imul ebx, dword [ebp - 0x14]
mov edx, ecx
and edx, 0xff00ff
imul edx, dword [ebp + 0x10]
and ecx, 0xff00
imul ecx, eax
imul ecx, dword [ebp + 0x10]
shr edx, 8
and edx, 0xff00ff
imul edx, eax
mov eax, dword [ebp + 0x1c]
shr edx, 8
shr edi, 8
add edx, edi
mov edi, dword [ebp + 0x18]
shr ecx, 0x10
shr ebx, 8
add ecx, ebx
and edx, 0xff00ff
and ecx, 0xff00
or edx, ecx
or edx, esi
mov esi, dword [ebp - 0x20]
mov dword [eax], edx
add eax, 4
mov dword [ebp + 0x1c], eax
jmp 0x4324a8
add dword [ebp + 0x1c], 4
mov eax, dword [ebp - 0x10]
add eax, 1
cmp eax, dword [edi + 8]
mov dword [ebp - 0x10], eax
jl 0x4323d0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x24]
mov edx, dword [ebp + 0x14]
lea eax, [edx + ecx*4]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x24]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp - 4]
lea ecx, [eax + edx*4]
mov eax, dword [ebp - 0xc]
add eax, 1
cmp eax, dword [edi + 0xc]
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], eax
jl 0x4323b5
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp dword [edi + 0xc], 0
mov dword [ebp - 0x1c], 0
jle 0x432d0a
mov edi, edi
cmp dword [edi + 8], 0
mov esi, dword [ebp + 0x14]
mov edx, dword [ebp - 4]
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], 0
jle 0x43262f
lea ecx, [ecx]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov ebx, dword [esi]
mov edx, ecx
shr edx, 0x18
imul edx, dword [ebp - 0x18]
add eax, 4
mov dword [ebp - 0x14], eax
mov eax, 0x80808081
mul edx
shr edx, 7
mov dword [ebp + 0x1c], edx
je 0x432617
mov edi, ebx
shr edi, 0x18
mov esi, 0xff
sub esi, edi
imul esi, edx
mov eax, 0x80808081
imul esi
mov eax, dword [ebp + 0x1c]
add edx, esi
imul eax, eax, 0xff
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, edi
cdq
idiv esi
mov edi, ecx
and edi, 0xff0000
mov edx, 0x100
shl esi, 0x18
imul edi, eax
sub edx, eax
mov dword [ebp + 0x1c], eax
shr edi, 8
imul edi, dword [ebp + 0x10]
mov eax, ebx
and eax, 0xff0000
imul eax, edx
mov dword [ebp - 0x10], edx
movzx edx, cl
imul edx, dword [ebp + 0x1c]
imul edx, dword [ebp - 0x20]
and ecx, 0xff00
imul ecx, dword [ebp + 0x1c]
imul ecx, dword [ebp - 0x24]
shr edi, 8
shr eax, 8
add edi, eax
movzx eax, bl
imul eax, dword [ebp - 0x10]
and ebx, 0xff00
imul ebx, dword [ebp - 0x10]
shr edx, 0x10
shr eax, 8
shr ecx, 0x10
and edi, 0xff0000
add edx, eax
shr ebx, 8
and edx, 0xff
add ecx, ebx
or edi, edx
and ecx, 0xff00
or edi, ecx
or edi, esi
mov esi, dword [ebp - 8]
mov dword [esi], edi
mov edi, dword [ebp + 0x18]
mov eax, dword [ebp - 0xc]
add eax, 1
add esi, 4
cmp eax, dword [edi + 8]
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
jl 0x432530
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x24]
mov eax, dword [ebp + 0x14]
lea ecx, [eax + edx*4]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x24]
mov dword [ebp + 0x14], ecx
mov ecx, dword [ebp - 4]
lea edx, [ecx + eax*4]
mov eax, dword [ebp - 0x1c]
add eax, 1
cmp eax, dword [edi + 0xc]
mov dword [ebp - 4], edx
mov dword [ebp - 0x1c], eax
jl 0x432510
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0xc]
imul eax, dword [ecx + 0x24]
add eax, dword [esi + 0x4c]
mov edx, dword [ebx]
add eax, dword [edi]
mov ecx, ebx
mov dword [ebp - 4], eax
mov eax, dword [edx + 0x7c]
call eax
mov ecx, dword [ebx + 0x24]
imul ecx, dword [ebp + 0x14]
add ecx, dword [ebp + 0x10]
cmp byte [ebx + 0x52], 0
lea edx, [eax + ecx*4]
mov dword [ebp + 0x14], edx
jne 0x4328cd
cmp byte [ebx + 0x51], 0
jne 0x4328cd
mov ebx, dword [ebp + 0x1c]
mov eax, 0x5dd088
mov ecx, ebx
call fcn.00404ae0
test al, al
jne 0x4328d0
mov eax, dword [esi]
mov edx, dword [eax + 0x48]
mov ecx, esi
call edx
mov ecx, dword [edi + 4]
mov edx, dword [ebp + 0xc]
imul ecx, dword [edx + 0x24]
add ecx, dword [edi]
mov dword [ebp - 0x14], 0
add ecx, eax
cmp dword [edi + 0xc], 0
mov dword [ebp - 0x18], ecx
jle 0x432d0a
mov eax, dword [ebp + 0x18]
mov edi, dword [eax + 8]
test edi, edi
mov esi, dword [ebp + 0x14]
mov edx, dword [ebp - 4]
mov dword [ebp + 0x10], ecx
mov dword [ebp - 0xc], edi
jle 0x432888
lea ecx, [ecx]
movzx ecx, byte [edx]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp + 0x10]
mov al, byte [eax]
movzx ebx, al
cmp ebx, edi
mov byte [ebp + 0x1f], al
jle 0x43272e
mov al, byte [ebp - 0xc]
mov byte [ebp + 0x1f], al
mov ebx, ecx
shr ebx, 0x18
mov edi, 0x100
sub edi, ebx
cmp edi, 1
mov dword [ebp - 0x24], edi
jne 0x43276a
movzx eax, al
test eax, eax
jle 0x432872
mov edi, dword [ebp - 8]
mov ecx, eax
movzx ebx, byte [edx]
mov ebx, dword [edi + ebx*4]
mov dword [esi], ebx
add esi, 4
add edx, 1
sub ecx, 1
jne 0x432752
jmp 0x432872
cmp edi, 0x100
jne 0x43277f
movzx eax, al
lea esi, [esi + eax*4]
add edx, eax
jmp 0x432872
mov eax, 0x100
sub eax, edi
mov dword [ebp - 0x1c], eax
mov eax, dword [esi]
mov ebx, eax
and ebx, 0xff00ff
imul ebx, edi
mov edi, ecx
and eax, 0xff00
imul eax, dword [ebp - 0x24]
and edi, 0xff00ff
imul edi, dword [ebp - 0x1c]
and ecx, 0xff00
imul ecx, dword [ebp - 0x1c]
shr ebx, 8
shr eax, 8
shr edi, 8
add ebx, edi
shr ecx, 8
add eax, ecx
and ebx, 0xffff00ff
and eax, 0xff00
or ebx, eax
movzx eax, byte [ebp + 0x1f]
or ebx, 0xff000000
mov dword [esi], ebx
add edx, 1
add esi, 4
cmp eax, 1
mov dword [ebp - 0x20], eax
jle 0x432872
add eax, 0xffffffff
mov dword [ebp + 0x1c], eax
movzx ecx, byte [edx]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi]
add edx, 1
mov dword [ebp - 0x1c], edx
mov edx, ecx
mov ebx, eax
shr edx, 0x18
and ebx, 0xff00ff
mov edi, 0x100
sub edi, edx
imul ebx, edi
mov dword [ebp - 0x24], edi
mov edi, ecx
and eax, 0xff00
imul eax, dword [ebp - 0x24]
and edi, 0xff00ff
and ecx, 0xff00
imul edi, edx
imul ecx, edx
mov edx, dword [ebp - 0x1c]
shr ebx, 8
shr eax, 8
shr edi, 8
add ebx, edi
shr ecx, 8
add eax, ecx
and ebx, 0xffff00ff
and eax, 0xff00
or ebx, eax
or ebx, 0xff000000
mov dword [esi], ebx
add esi, 4
sub dword [ebp + 0x1c], 1
jne 0x4327f6
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0xc]
add dword [ebp + 0x10], eax
sub edi, eax
test edi, edi
mov dword [ebp - 0xc], edi
jg 0x432710
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x24]
mov edx, dword [ebp + 0x14]
lea eax, [edx + eax*4]
mov edx, dword [ebp + 0xc]
mov dword [ebp + 0x14], eax
mov eax, dword [edx + 0x24]
add dword [ebp - 4], eax
mov edx, dword [ebp + 0x18]
add ecx, eax
mov eax, dword [ebp - 0x14]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
jl 0x4326f3
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ebx, dword [ebp + 0x1c]
mov eax, ebx
call fcn.00404aa0
test al, al
je 0x432a1e
cmp dword [edi + 0xc], 0
mov dword [ebp - 0x18], 0
jle 0x432d0a
cmp dword [edi + 8], 0
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 4]
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x1c], 0
jle 0x4329e1
lea ebx, [ebx]
movzx ecx, byte [edx]
mov eax, dword [ebp - 8]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
add edx, 1
mov eax, ebx
shr eax, 0x18
mov dword [ebp - 0x24], edx
mov dword [ebp + 0x1c], eax
je 0x4329cb
mov edi, ecx
shr edi, 0x18
mov esi, 0xff
sub esi, edi
imul esi, eax
mov eax, 0x80808081
imul esi
mov eax, dword [ebp + 0x1c]
add edx, esi
imul eax, eax, 0xff
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, edi
cdq
idiv esi
mov edi, ecx
and edi, 0xff00
mov edx, 0x100
and ecx, 0xff00ff
shl esi, 0x18
sub edx, eax
mov dword [ebp + 0x1c], eax
imul edi, edx
imul ecx, edx
mov edx, dword [ebp - 0x24]
mov eax, ebx
and eax, 0xff00
imul eax, dword [ebp + 0x1c]
and ebx, 0xff00ff
imul ebx, dword [ebp + 0x1c]
shr edi, 8
shr eax, 8
add edi, eax
mov eax, dword [ebp + 0x10]
shr ecx, 8
shr ebx, 8
and edi, 0xff00
add ecx, ebx
and ecx, 0xff00ff
or edi, ecx
or edi, esi
mov dword [eax], edi
mov edi, dword [ebp + 0x18]
add eax, 4
mov dword [ebp + 0x10], eax
jmp 0x4329cf
add dword [ebp + 0x10], 4
mov eax, dword [ebp - 0x1c]
add eax, 1
cmp eax, dword [edi + 8]
mov dword [ebp - 0x1c], eax
jl 0x432910
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
mov edx, dword [ecx + 0x24]
lea ecx, [eax + edx*4]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x24]
add dword [ebp - 4], eax
mov eax, dword [ebp - 0x18]
add eax, 1
cmp eax, dword [edi + 0xc]
mov dword [ebp + 0x14], ecx
mov dword [ebp - 0x18], eax
jl 0x4328f0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebx]
cmp ecx, eax
mov ebx, dword [ebx + 8]
mov dword [ebp + 0x10], ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ebx
jne 0x432ba5
cmp eax, ebx
jne 0x432ba5
cmp dword [edi + 0xc], 0
mov dword [ebp - 0x14], 0
jle 0x432d0a
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp - 4]
lea esp, [esp]
cmp dword [edi + 8], 0
mov dword [ebp + 0x1c], eax
mov dword [ebp - 0x18], 0
jle 0x432b6b
movzx edx, byte [esi]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + edx*4]
mov edx, dword [ebp + 0x1c]
mov ebx, dword [edx]
mov edx, ecx
shr edx, 0x18
imul edx, dword [ebp - 0x10]
mov eax, 0x80808081
mul edx
add esi, 1
shr edx, 7
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x1c], edx
je 0x432b4f
mov edi, ebx
shr edi, 0x18
mov esi, 0xff
sub esi, edi
imul esi, edx
mov eax, 0x80808081
imul esi
mov eax, dword [ebp - 0x1c]
add edx, esi
imul eax, eax, 0xff
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, edi
cdq
idiv esi
mov edx, 0x100
mov edi, ebx
and edi, 0xff00ff
and ebx, 0xff00
shl esi, 0x18
sub edx, eax
mov dword [ebp - 0x1c], edx
imul edi, dword [ebp - 0x1c]
imul ebx, dword [ebp - 0x1c]
mov edx, ecx
and edx, 0xff00ff
imul edx, dword [ebp + 0x10]
and ecx, 0xff00
imul ecx, eax
imul ecx, dword [ebp + 0x10]
shr edx, 8
and edx, 0xff00ff
imul edx, eax
mov eax, dword [ebp + 0x1c]
shr edx, 8
shr edi, 8
add edx, edi
mov edi, dword [ebp + 0x18]
shr ecx, 0x10
shr ebx, 8
add ecx, ebx
and edx, 0xff00ff
and ecx, 0xff00
or edx, ecx
or edx, esi
mov esi, dword [ebp - 0x24]
mov dword [eax], edx
add eax, 4
mov dword [ebp + 0x1c], eax
jmp 0x432b53
add dword [ebp + 0x1c], 4
mov eax, dword [ebp - 0x18]
add eax, 1
cmp eax, dword [edi + 8]
mov dword [ebp - 0x18], eax
jl 0x432a74
mov esi, dword [ebp - 4]
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x24]
mov ecx, dword [ebp + 0xc]
add esi, dword [ecx + 0x24]
mov ecx, dword [ebp - 0x14]
add ecx, 1
cmp ecx, dword [edi + 0xc]
lea eax, [eax + edx*4]
mov dword [ebp + 0x14], eax
mov dword [ebp - 4], esi
mov dword [ebp - 0x14], ecx
jl 0x432a60
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp dword [edi + 0xc], 0
mov dword [ebp - 0x20], 0
jle 0x432d0a
mov eax, dword [ebp - 4]
mov esi, dword [ebp + 0x14]
lea esp, [esp]
cmp dword [edi + 8], 0
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], 0
jle 0x432ce3
mov eax, dword [ebp - 0x1c]
movzx edx, byte [eax]
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + edx*4]
mov ebx, dword [esi]
mov edx, ecx
shr edx, 0x18
imul edx, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x1c], eax
mov eax, 0x80808081
mul edx
shr edx, 7
mov dword [ebp + 0x1c], edx
je 0x432cc5
mov edi, ebx
shr edi, 0x18
mov esi, 0xff
sub esi, edi
imul esi, edx
mov eax, 0x80808081
imul esi
mov eax, dword [ebp + 0x1c]
add edx, esi
imul eax, eax, 0xff
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, edi
cdq
idiv esi
mov edi, ecx
and edi, 0xff0000
mov edx, 0x100
shl esi, 0x18
imul edi, eax
sub edx, eax
mov dword [ebp + 0x1c], eax
shr edi, 8
imul edi, dword [ebp + 0x10]
mov eax, ebx
and eax, 0xff0000
imul eax, edx
mov dword [ebp - 0x18], edx
movzx edx, cl
imul edx, dword [ebp + 0x1c]
imul edx, dword [ebp - 0x24]
and ecx, 0xff00
imul ecx, dword [ebp + 0x1c]
imul ecx, dword [ebp - 0x28]
shr edi, 8
shr eax, 8
add edi, eax
movzx eax, bl
imul eax, dword [ebp - 0x18]
and ebx, 0xff00
imul ebx, dword [ebp - 0x18]
shr edx, 0x10
shr eax, 8
shr ecx, 0x10
and edi, 0xff0000
add edx, eax
shr ebx, 8
and edx, 0xff
add ecx, ebx
or edi, edx
and ecx, 0xff00
or edi, ecx
or edi, esi
mov esi, dword [ebp - 0xc]
mov dword [esi], edi
mov edi, dword [ebp + 0x18]
mov eax, dword [ebp - 0x14]
add eax, 1
add esi, 4
cmp eax, dword [edi + 8]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x14], eax
jl 0x432bd7
mov eax, dword [ebp - 4]
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x24]
mov ecx, dword [ebp + 0xc]
add eax, dword [ecx + 0x24]
mov ecx, dword [ebp - 0x20]
add ecx, 1
cmp ecx, dword [edi + 0xc]
lea esi, [esi + edx*4]
mov dword [ebp + 0x14], esi
mov dword [ebp - 4], eax
mov dword [ebp - 0x20], ecx
jl 0x432bc0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x64]
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18