Function at 0x45da20
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x494
mov eax, dword [0x5cfc24]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x48c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x490], eax
mov eax, dword [ebp + 0x14]
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x494], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x474], eax
lea eax, [ebp - 0x464]
push edi
push eax
push esi
mov dword [ebp - 0x424], esi
mov dword [ebp - 0x414], 0
mov dword [ebp - 0x448], 0xff
call fcn.0045e770
add esp, 8
test eax, eax
je 0x45e011
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x45c]
mov dword [ebp - 0x488], eax
cdq
mov edi, eax
mov eax, dword [ebp - 0x448]
xor edi, edx
mov dword [ebp - 0x42c], eax
mov eax, dword [ebp - 0x460]
sub edi, edx
mov dword [ebp - 0x418], edi
mov dword [esi + 4], edi
cmp ecx, 0xc
jne 0x45dae1
cmp dword [ebp - 0x464], 0x18
jge 0x45db00
lea ecx, [eax - 0x26]
mov eax, 0x55555556
imul ecx
mov edi, edx
shr edi, 0x1f
add edi, edx
jmp 0x45daf4
cmp dword [ebp - 0x464], 0x10
jge 0x45db00
mov edi, eax
sub edi, ecx
sub edi, 0xe
sar edi, 2
mov dword [ebp - 0x414], edi
mov edi, dword [ebp - 0x418]
mov eax, dword [ebp - 0x474]
xor ebx, ebx
cmp dword [ebp - 0x44c], ebx
setne bl
add ebx, 3
mov dword [ebp - 0x41c], ebx
mov dword [esi + 8], ebx
test eax, eax
je 0x45db3a
cmp eax, 3
jl 0x45db3a
mov ecx, dword [esi]
mov ebx, eax
mov eax, ecx
mov dword [ebp - 0x41c], ebx
mov dword [ebp - 0x408], eax
jmp 0x45db44
mov ecx, dword [esi]
mov eax, ecx
mov dword [ebp - 0x408], ecx
mov dword [ebp - 0x418], edi
test eax, eax
js 0x45e007
je 0x45db6a
mov eax, 0x7fffffff
cdq
idiv dword [ebp - 0x408]
cmp ebx, eax
jg 0x45e007
mov eax, ecx
imul eax, ebx
mov dword [ebp - 0x408], eax
test eax, eax
js 0x45e007
mov eax, edi
test eax, eax
js 0x45e007
je 0x45db9f
mov eax, 0x7fffffff
cdq
idiv dword [ebp - 0x418]
cmp dword [ebp - 0x408], eax
jg 0x45e007
test ebx, ebx
js 0x45e744
test ecx, ecx
je 0x45dbbb
mov eax, 0x7fffffff
cdq
idiv ecx
cmp ebx, eax
jg 0x45e744
mov eax, ebx
imul eax, ecx
mov dword [ebp - 0x418], eax
test edi, edi
je 0x45dbde
mov eax, 0x7fffffff
cdq
idiv edi
cmp dword [ebp - 0x418], eax
jg 0x45e744
imul ecx, edi
mov eax, ebx
imul eax, ecx
push eax
call fcn.004f027b
mov edi, eax
add esp, 4
mov dword [ebp - 0x410], edi
test edi, edi
je 0x45e744
cmp dword [ebp - 0x464], 0x10
jge 0x45e024
mov eax, dword [ebp - 0x414]
xor edi, edi
test eax, eax
je 0x45dff9
cmp eax, 0x100
jg 0x45dff9
mov dword [ebp - 0x408], edi
test eax, eax
jle 0x45dd89
mov eax, dword [ebp - 0x41c]
lea ebx, [esi + 0x20]
mov dword [ebp - 0x40c], eax
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x45dc69
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45dc8e
cmp dword [esi + 0x20], 0
lea ebx, [esi + 0x20]
je 0x45dc8c
push esi
call fcn.00468fc0
mov eax, dword [esi + 0xa8]
add esp, 4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45dc8e
xor cl, cl
mov edx, ebx
mov ebx, dword [ebp - 0x408]
mov dword [ebp - 0x418], edx
mov byte [ebp + ebx*4 - 0x402], cl
cmp eax, dword [esi + 0xac]
jae 0x45dcb6
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45dcdd
cmp dword [edx], 0
je 0x45dcdb
push esi
call fcn.00468fc0
mov eax, dword [esi + 0xa8]
add esp, 4
mov edx, dword [ebp - 0x418]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45dcdd
xor cl, cl
mov byte [ebp + ebx*4 - 0x403], cl
mov ecx, dword [esi + 0xac]
cmp eax, ecx
jae 0x45dcfc
mov dl, byte [eax]
lea ebx, [esi + 0x20]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45dd25
cmp dword [edx], 0
mov ebx, edx
je 0x45dd23
push esi
call fcn.00468fc0
mov eax, dword [esi + 0xa8]
add esp, 4
mov ecx, dword [esi + 0xac]
mov dl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45dd25
xor dl, dl
cmp dword [ebp - 0x45c], 0xc
mov edi, dword [ebp - 0x408]
mov byte [ebp + edi*4 - 0x404], dl
mov edi, dword [ebp - 0x414]
je 0x45dd68
cmp eax, ecx
jae 0x45dd4e
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45dd68
mov eax, dword [ebp - 0x418]
cmp dword [eax], 0
je 0x45dd68
push esi
call fcn.00468fc0
add esp, 4
inc dword [esi + 0xa8]
mov ecx, dword [ebp - 0x408]
mov byte [ebp + ecx*4 - 0x401], 0xff
inc ecx
mov dword [ebp - 0x408], ecx
cmp ecx, edi
jl 0x45dc50
xor edi, edi
jmp 0x45dd8f
mov dword [ebp - 0x40c], ebx
mov ecx, dword [ebp - 0x460]
xor eax, eax
cmp dword [ebp - 0x45c], 0xc
setne al
add eax, 3
imul eax, dword [ebp - 0x414]
sub ecx, eax
sub ecx, dword [ebp - 0x45c]
sub ecx, 0xe
push ecx
push esi
call fcn.00469610
mov eax, dword [ebp - 0x464]
add esp, 8
cmp eax, 4
jne 0x45ddd2
mov ebx, dword [esi]
inc ebx
shr ebx, 1
jmp 0x45dddd
cmp eax, 8
jne 0x45dff9
mov ebx, dword [esi]
mov ecx, dword [esi + 4]
neg ebx
and ebx, 3
mov dword [ebp - 0x41c], 0
mov dword [ebp - 0x428], ebx
test ecx, ecx
jle 0x45e60c
lea eax, [esi + 0xac]
mov ecx, dword [esi]
mov dword [ebp - 0x414], eax
mov dword [ebp - 0x420], 0
test ecx, ecx
jle 0x45df9e
nop dword [eax]
mov edx, dword [esi + 0xa8]
cmp edx, dword [eax]
jae 0x45de35
mov bl, byte [edx]
inc edx
mov dword [esi + 0xa8], edx
jmp 0x45de5b
cmp dword [esi + 0x20], 0
je 0x45de59
push esi
call fcn.00468fc0
mov eax, dword [esi + 0xa8]
add esp, 4
mov ecx, dword [esi]
mov bl, byte [eax]
lea edx, [eax + 1]
mov dword [esi + 0xa8], edx
jmp 0x45de5b
xor bl, bl
cmp dword [ebp - 0x464], 4
movzx ebx, bl
mov dword [ebp - 0x418], 0
jne 0x45de7f
mov eax, ebx
and eax, 0xf
shr ebx, 4
mov dword [ebp - 0x418], eax
mov esi, dword [ebp - 0x410]
movzx eax, byte [ebp + ebx*4 - 0x404]
mov byte [edi + esi], al
movzx eax, byte [ebp + ebx*4 - 0x403]
mov byte [edi + esi + 1], al
movzx eax, byte [ebp + ebx*4 - 0x402]
mov ebx, esi
mov esi, dword [ebp - 0x424]
mov byte [edi + ebx + 2], al
add edi, 3
cmp dword [ebp - 0x40c], 4
jne 0x45dec1
mov byte [edi + ebx], 0xff
inc edi
mov eax, dword [ebp - 0x420]
inc eax
cmp eax, ecx
je 0x45df92
cmp dword [ebp - 0x464], 8
jne 0x45df29
mov eax, dword [ebp - 0x414]
cmp edx, dword [eax]
jae 0x45def7
mov bl, byte [edx]
lea eax, [edx + 1]
movzx edx, bl
mov ebx, ecx
mov ecx, dword [esi]
mov dword [esi + 0xa8], eax
jmp 0x45df31
cmp dword [esi + 0x20], 0
je 0x45df1e
push esi
call fcn.00468fc0
mov eax, dword [esi + 0xa8]
add esp, 4
mov bl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
mov ecx, dword [esi]
movzx edx, bl
mov ebx, ecx
jmp 0x45df31
xor bl, bl
movzx edx, bl
mov ebx, ecx
mov ecx, dword [esi]
jmp 0x45df31
mov edx, dword [ebp - 0x418]
mov ebx, ecx
mov esi, dword [ebp - 0x410]
movzx eax, byte [ebp + edx*4 - 0x404]
mov byte [edi + esi], al
movzx eax, byte [ebp + edx*4 - 0x403]
mov byte [edi + esi + 1], al
movzx eax, byte [ebp + edx*4 - 0x402]
mov edx, esi
mov esi, dword [ebp - 0x424]
mov byte [edi + edx + 2], al
add edi, 3
cmp dword [ebp - 0x40c], 4
jne 0x45df75
mov ecx, dword [esi]
mov byte [edi + edx], 0xff
inc edi
mov eax, dword [ebp - 0x420]
add eax, 2
mov dword [ebp - 0x420], eax
cmp eax, ebx
mov eax, dword [ebp - 0x414]
jl 0x45de20
mov eax, dword [ebp - 0x414]
mov ebx, dword [ebp - 0x428]
cmp dword [esi + 0x10], 0
je 0x45dfd0
mov edx, dword [eax]
mov ecx, edx
sub ecx, dword [esi + 0xa8]
cmp ecx, ebx
jge 0x45dfd6
mov eax, ebx
mov dword [esi + 0xa8], edx
sub eax, ecx
push eax
push dword [esi + 0x1c]
mov eax, dword [esi + 0x14]
call eax
mov eax, dword [ebp - 0x414]
add esp, 8
jmp 0x45dfdc
lea eax, [esi + 0xac]
add dword [esi + 0xa8], ebx
mov edx, dword [ebp - 0x41c]
mov ecx, dword [esi + 4]
inc edx
mov dword [ebp - 0x41c], edx
cmp edx, ecx
jl 0x45de03
jmp 0x45e60c
push dword [ebp - 0x410]
call fcn.004e51e6
add esp, 4
mov dword [0x5d17b0], str.Corrupt_BMP
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004dde94
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x43c], eax
mov dword [ebp - 0x444], eax
mov dword [ebp - 0x468], eax
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x440], eax
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x408], eax
mov dword [ebp - 0x434], eax
mov eax, dword [ebp - 0x460]
sub eax, dword [ebp - 0x45c]
sub eax, 0xe
push eax
push esi
call fcn.00469610
mov ecx, dword [ebp - 0x464]
add esp, 8
cmp ecx, 0x18
jne 0x45e08d
mov eax, dword [esi]
lea eax, [eax + eax*2]
jmp 0x45e09a
cmp ecx, 0x10
jne 0x45e098
mov eax, dword [esi]
add eax, eax
jmp 0x45e09a
xor eax, eax
mov edx, dword [ebp - 0x454]
neg eax
and eax, 3
mov dword [ebp - 0x40c], ebx
mov dword [ebp - 0x470], eax
cmp ecx, 0x18
mov ecx, dword [ebp - 0x450]
mov eax, dword [ebp - 0x458]
jne 0x45e0d3
mov dword [ebp - 0x434], 1
xor edx, edx
jmp 0x45e1cc
cmp dword [ebp - 0x464], 0x20
jne 0x45e12e
mov dword [ebp - 0x40c], ebx
cmp ecx, 0xff
jne 0x45e12e
mov dword [ebp - 0x40c], ebx
cmp edx, 0xff00
jne 0x45e12e
mov dword [ebp - 0x40c], ebx
cmp eax, 0xff0000
jne 0x45e12e
cmp dword [ebp - 0x44c], 0xff000000
mov dword [ebp - 0x40c], ebx
jne 0x45e12e
mov dword [ebp - 0x434], 2
xor edx, edx
mov dword [ebp - 0x40c], ebx
jmp 0x45e1cc
test eax, eax
je 0x45e73e
test edx, edx
je 0x45e73e
test ecx, ecx
je 0x45e73e
push eax
call fcn.00462ad0
push dword [ebp - 0x458]
sub eax, 7
mov dword [ebp - 0x420], eax
call fcn.0045d9d0
mov ebx, dword [ebp - 0x454]
push ebx
mov dword [ebp - 0x438], eax
call fcn.00462ad0
sub eax, 7
push ebx
mov dword [ebp - 0x43c], eax
call fcn.0045d9d0
mov ebx, dword [ebp - 0x450]
push ebx
mov dword [ebp - 0x440], eax
call fcn.00462ad0
sub eax, 7
push ebx
mov dword [ebp - 0x444], eax
call fcn.0045d9d0
mov ebx, dword [ebp - 0x44c]
push ebx
mov dword [ebp - 0x41c], eax
call fcn.00462ad0
push ebx
lea edx, [eax - 7]
mov dword [ebp - 0x468], edx
call fcn.0045d9d0
add esp, 0x20
mov dword [ebp - 0x418], eax
mov ecx, dword [esi + 4]
mov dword [ebp - 0x428], 0
test ecx, ecx
jle 0x45e60c
mov ebx, dword [ebp - 0x420]
mov eax, ebx
neg eax
mov dword [ebp - 0x478], eax
mov eax, dword [ebp - 0x43c]
neg eax
mov dword [ebp - 0x47c], eax
mov eax, dword [ebp - 0x444]
neg eax
neg edx
mov dword [ebp - 0x484], edx
lea edx, [esi + 0xac]
mov dword [ebp - 0x480], eax
nop dword [eax + eax]
cmp dword [ebp - 0x434], 0
mov eax, dword [esi]
mov dword [ebp - 0x414], edx
je 0x45e3b7
mov dword [ebp - 0x430], 0
test eax, eax
jle 0x45e5aa
mov ebx, dword [ebp - 0x410]
lea edi, [esi + 0x20]
mov eax, dword [esi + 0xa8]
cmp eax, dword [edx]
jae 0x45e265
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45e28a
cmp dword [esi + 0x20], 0
lea edi, [esi + 0x20]
je 0x45e288
push esi
call fcn.00468fc0
mov eax, dword [esi + 0xa8]
add esp, 4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45e28a
xor cl, cl
mov edx, dword [ebp - 0x408]
mov byte [edx + ebx + 2], cl
mov ecx, dword [ebp - 0x414]
cmp eax, dword [ecx]
jae 0x45e2a9
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45e2d0
cmp dword [edi], 0
je 0x45e2ce
push esi
call fcn.00468fc0
mov eax, dword [esi + 0xa8]
add esp, 4
mov edx, dword [ebp - 0x408]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45e2d0
xor cl, cl
mov byte [edx + ebx + 1], cl
mov ecx, dword [ebp - 0x414]
mov ecx, dword [ecx]
cmp eax, ecx
jae 0x45e2eb
mov dl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45e314
cmp dword [edi], 0
je 0x45e312
push esi
call fcn.00468fc0
mov eax, dword [esi + 0xa8]
add esp, 4
mov ecx, dword [ebp - 0x414]
mov dl, byte [eax]
inc eax
mov ecx, dword [ecx]
mov dword [esi + 0xa8], eax
jmp 0x45e314
xor dl, dl
mov esi, dword [ebp - 0x408]
mov byte [esi + ebx], dl
mov edx, esi
mov esi, dword [ebp - 0x424]
add edx, 3
cmp dword [ebp - 0x434], 2
mov dword [ebp - 0x408], edx
jne 0x45e36f
cmp eax, ecx
jae 0x45e346
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45e372
cmp dword [edi], 0
je 0x45e36b
push esi
call fcn.00468fc0
mov eax, dword [esi + 0xa8]
add esp, 4
mov edx, dword [ebp - 0x408]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45e375
xor cl, cl
jmp 0x45e375
or cl, 0xff
lea edi, [esi + 0x20]
movzx eax, cl
or dword [ebp - 0x42c], eax
cmp dword [ebp - 0x40c], 4
jne 0x45e391
mov byte [edx + ebx], cl
inc edx
mov dword [ebp - 0x408], edx
mov ecx, dword [ebp - 0x430]
mov edx, dword [ebp - 0x414]
inc ecx
mov dword [ebp - 0x430], ecx
cmp ecx, dword [esi]
jl 0x45e250
mov edi, dword [ebp - 0x410]
jmp 0x45e5a4
mov dword [ebp - 0x46c], 0
test eax, eax
jle 0x45e5aa
nop dword [eax]
push esi
call fcn.00460ed0
cmp dword [ebp - 0x464], 0x10
jne 0x45e3e4
add esp, 4
jmp 0x45e3fa
push esi
mov edi, eax
call fcn.00460ed0
shl eax, 0x10
add esp, 8
add eax, edi
mov edi, dword [ebp - 0x410]
mov edx, eax
mov dword [ebp - 0x430], eax
and edx, dword [ebp - 0x458]
mov ecx, ebx
mov eax, edx
sar eax, cl
mov ecx, dword [ebp - 0x478]
shl edx, cl
test ebx, ebx
mov ecx, dword [ebp - 0x438]
cmovns edx, eax
mov ebx, edx
cmp ecx, 8
jge 0x45e443
mov esi, ecx
nop word [eax + eax]
mov eax, edx
sar eax, cl
add ecx, esi
add ebx, eax
cmp ecx, 8
jl 0x45e430
mov esi, dword [ebp - 0x424]
mov eax, dword [ebp - 0x408]
mov edx, dword [ebp - 0x43c]
mov ecx, edx
mov byte [eax + edi], bl
inc eax
mov ebx, dword [ebp - 0x430]
mov edi, ebx
and edi, dword [ebp - 0x454]
mov dword [ebp - 0x408], eax
mov eax, edi
sar eax, cl
mov ecx, dword [ebp - 0x47c]
shl edi, cl
test edx, edx
mov ecx, dword [ebp - 0x440]
cmovns edi, eax
mov edx, edi
cmp ecx, 8
jge 0x45e4a3
mov esi, ecx
nop dword [eax]
mov eax, edi
sar eax, cl
add ecx, esi
add edx, eax
cmp ecx, 8
jl 0x45e490
mov esi, dword [ebp - 0x424]
mov ecx, dword [ebp - 0x408]
mov edi, ebx
mov eax, dword [ebp - 0x410]
and edi, dword [ebp - 0x450]
mov byte [ecx + eax], dl
inc ecx
mov edx, dword [ebp - 0x444]
mov eax, edi
mov dword [ebp - 0x408], ecx
mov ecx, edx
sar eax, cl
mov ecx, dword [ebp - 0x480]
shl edi, cl
test edx, edx
mov ecx, dword [ebp - 0x41c]
cmovns edi, eax
mov edx, edi
cmp ecx, 8
jge 0x45e503
mov esi, ecx
nop dword [eax]
mov eax, edi
sar eax, cl
add ecx, esi
add edx, eax
cmp ecx, 8
jl 0x45e4f0
mov esi, dword [ebp - 0x424]
mov eax, dword [ebp - 0x408]
mov edi, dword [ebp - 0x410]
mov ecx, dword [ebp - 0x44c]
mov byte [eax + edi], dl
inc eax
mov dword [ebp - 0x408], eax
test ecx, ecx
je 0x45e56b
mov edx, dword [ebp - 0x468]
and ebx, ecx
mov eax, ebx
mov ecx, edx
sar eax, cl
mov ecx, dword [ebp - 0x484]
shl ebx, cl
test edx, edx
mov ecx, dword [ebp - 0x418]
cmovns ebx, eax
mov edx, ebx
cmp ecx, 8
jge 0x45e563
mov esi, ecx
nop dword [eax]
mov eax, ebx
sar eax, cl
add ecx, esi
add edx, eax
cmp ecx, 8
jl 0x45e550
mov esi, dword [ebp - 0x424]
mov eax, dword [ebp - 0x408]
jmp 0x45e570
mov edx, 0xff
or dword [ebp - 0x42c], edx
cmp dword [ebp - 0x40c], 4
jne 0x45e589
mov byte [eax + edi], dl
inc eax
mov dword [ebp - 0x408], eax
mov ecx, dword [ebp - 0x46c]
mov ebx, dword [ebp - 0x420]
inc ecx
mov dword [ebp - 0x46c], ecx
cmp ecx, dword [esi]
jl 0x45e3d0
mov edx, dword [ebp - 0x414]
cmp dword [esi + 0x10], 0
mov ebx, dword [ebp - 0x470]
je 0x45e5e2
mov eax, dword [edx]
mov ecx, eax
sub ecx, dword [esi + 0xa8]
cmp ecx, ebx
jge 0x45e5e8
mov dword [esi + 0xa8], eax
mov eax, ebx
sub eax, ecx
push eax
push dword [esi + 0x1c]
mov eax, dword [esi + 0x14]
call eax
mov edx, dword [ebp - 0x414]
add esp, 8
jmp 0x45e5ee
lea edx, [esi + 0xac]
add dword [esi + 0xa8], ebx
mov eax, dword [ebp - 0x428]
mov ecx, dword [esi + 4]
inc eax
mov ebx, dword [ebp - 0x420]
mov dword [ebp - 0x428], eax
cmp eax, ecx
jl 0x45e220
mov edx, dword [ebp - 0x40c]
mov edi, dword [ebp - 0x410]
cmp edx, 4
jne 0x45e63f
cmp dword [ebp - 0x42c], 0
jne 0x45e63f
mov eax, dword [esi]
imul eax, ecx
lea eax, [eax*4 - 1]
test eax, eax
js 0x45e63f
mov byte [eax + edi], 0xff
sub eax, 4
jns 0x45e636
cmp dword [ebp - 0x488], 0
jle 0x45e6d2
mov ecx, dword [esi + 4]
xor edx, edx
mov dword [ebp - 0x428], edx
test ecx, 0xfffffffe
jle 0x45e6cc
nop
mov eax, dword [esi]
sub ecx, edx
dec ecx
mov ebx, eax
imul ecx, eax
imul eax, dword [ebp - 0x40c]
imul ebx, edx
imul ecx, dword [ebp - 0x40c]
imul ebx, dword [ebp - 0x40c]
lea edx, [ecx + edi]
xor edi, edi
test eax, eax
jle 0x45e6ae
sub ebx, ecx
nop dword [eax]
mov al, byte [edx]
lea edx, [edx + 1]
mov cl, byte [edx + ebx - 1]
inc edi
mov byte [edx + ebx - 1], al
mov byte [edx - 1], cl
mov eax, dword [esi]
imul eax, dword [ebp - 0x40c]
cmp edi, eax
jl 0x45e690
mov edx, dword [ebp - 0x428]
mov ecx, dword [esi + 4]
inc edx
mov edi, dword [ebp - 0x410]
mov eax, ecx
sar eax, 1
mov dword [ebp - 0x428], edx
cmp edx, eax
jl 0x45e660
mov edx, dword [ebp - 0x40c]
mov eax, dword [ebp - 0x474]
test eax, eax
je 0x45e701
cmp eax, edx
je 0x45e701
push dword [esi + 4]
push dword [esi]
push eax
push edx
push dword [ebp - 0x410]
call fcn.0045f340
mov ecx, eax
add esp, 0x14
test ecx, ecx
je 0x45e011
jmp 0x45e707
mov ecx, dword [ebp - 0x410]
mov edx, dword [ebp - 0x48c]
mov eax, dword [esi]
mov dword [edx], eax
mov edx, dword [ebp - 0x490]
mov eax, dword [esi + 4]
mov dword [edx], eax
mov edx, dword [ebp - 0x494]
test edx, edx
je 0x45e72b
mov eax, dword [esi + 8]
mov dword [edx], eax
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004dde94
mov esp, ebp
pop ebp
ret
push edi
jmp 0x45dfff
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
mov dword [0x5d17b0], 0x5174f8
pop ebx
call fcn.004dde94
mov esp, ebp
pop ebp
ret