Function at 0x51b630
Capabilities:
Encrypt data using salsa20 or chacha
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x1e0]
cmp eax, dword [ecx + 8]
jbe 0x51c47a
sub esp, 0x260
mov ebp, dword [esp + 0x26c]
mov esi, dword [esp + 0x278]
cmp ebp, esi
jl 0x51c461
test esi, esi
jne 0x51c389
mov ebp, dword [esp + 0x264]
mov eax, esi
mov esi, dword [ebp + 0x70]
test esi, esi
je 0x51c366
mov ecx, ebp
lea ebp, [esi - 0x40]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x40
ja 0x51c43d
mov edx, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebp
lea ebp, [ecx + esi + 0x30]
cmp edx, eax
jle 0x51c358
mov edx, eax
mov esi, dword [esp + 0x270]
cmp eax, esi
ja 0x51c434
mov ebx, esi
mov esi, dword [esp + 0x27c]
cmp eax, esi
ja 0x51c42b
mov dword [esp + 0x25c], ebp
mov edi, dword [esp + 0x268]
mov dword [esp + 0x250], eax
xor eax, eax
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x250]
jmp 0x51b731
mov ebx, dword [esp + 0x274]
movzx edx, byte [esi + ebx]
xor edx, ebp
mov byte [edi + esi], dl
lea edx, [esi + 1]
mov ebp, dword [esp + 0x25c]
mov ebx, dword [esp + 0x270]
mov esi, dword [esp + 0x27c]
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x278]
mov esi, dword [esp + 0x9c]
cmp eax, esi
jle 0x51b747
movzx ebp, byte [esi + ebp]
ja 0x51b6fb
jmp 0x51c422
mov ebp, dword [ecx + 0x70]
sub ebp, eax
mov dword [ecx + 0x70], ebp
test ebp, ebp
jne 0x51c351
mov dword [esp + 0x100], eax
lea ebp, [ecx + 0x30]
mov esi, edi
mov edi, ebp
xor eax, eax
call fcn.0045e490
mov eax, dword [esp + 0x100]
cmp eax, edx
ja 0x51c41b
mov ebp, dword [esp + 0x27c]
sub ebp, eax
sub edx, eax
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
mov ecx, edi
mov edi, dword [esp + 0x274]
add ebp, edi
sub ebx, eax
mov edi, ebx
neg ebx
sar ebx, 0x1f
and eax, ebx
add esi, eax
test edx, edx
je 0x51c34a
mov dword [esp + 0x278], edx
mov dword [esp + 0x274], ebp
mov dword [esp + 0x270], edi
mov dword [esp + 0x268], esi
mov eax, edx
and edx, 0x3f
mov dword [esp + 0x90], edx
mov ebx, eax
sub eax, edx
mov dword [esp + 0xa8], eax
test edx, edx
jle 0x51b826
cmp ebx, eax
jb 0x51c414
sub ebx, eax
sub ecx, eax
neg ecx
sar ecx, 0x1f
and ecx, eax
add ebp, ecx
cmp ebx, 0x40
jge 0x51c340
mov esi, dword [esp + 0x264]
lea edi, [esi + 0x30]
cmp edi, ebp
je 0x51b826
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
call fcn.0045eba0
mov ebp, dword [esp + 0x264]
mov esi, dword [ebp + 4]
mov edi, dword [ebp + 0x14]
mov eax, edi
mov edi, dword [ebp + 8]
mov ecx, edi
mov edi, dword [ebp + 0x18]
mov edx, edi
mov edi, dword [ebp + 0xc]
mov ebx, edi
mov edi, dword [ebp + 0x1c]
mov dword [esp + 0xe4], edi
lea edi, [esi + 0x3320646e]
xor edi, dword [ebp + 0x24]
rol edi, 0x10
mov dword [esp + 0xcc], edi
lea ebp, [edi + eax]
mov eax, ebp
xor ebp, esi
rol ebp, 0xc
lea edi, [ebp + esi]
mov dword [esp + 0x184], edi
lea esi, [ebp + esi + 0x3320646e]
mov edi, dword [esp + 0xcc]
xor esi, edi
rol esi, 8
mov dword [esp + 0xbc], esi
lea edi, [eax + esi]
xor ebp, edi
mov dword [esp + 0x128], ebp
mov eax, edi
lea edi, [ecx + 0x79622d32]
mov esi, dword [esp + 0x264]
xor edi, dword [esi + 0x28]
rol edi, 0x10
lea ebp, [edi + edx]
mov edx, ebp
xor ebp, ecx
rol ebp, 0xc
lea esi, [ebp + ecx]
mov dword [esp + 0x180], esi
lea esi, [ebp + ecx + 0x79622d32]
xor esi, edi
rol esi, 8
lea edi, [edx + esi]
xor ebp, edi
mov dword [esp + 0x12c], ebp
mov ecx, esi
lea esi, [ebx + 0x6b206574]
mov edx, edi
mov edi, dword [esp + 0x264]
xor esi, dword [edi + 0x2c]
rol esi, 0x10
mov edi, dword [esp + 0xe4]
add edi, esi
mov dword [esp + 0xe4], edi
xor edi, ebx
rol edi, 0xc
lea ebp, [edi + ebx]
mov dword [esp + 0x17c], ebp
lea ebp, [edi + ebx + 0x6b206574]
xor ebp, esi
rol ebp, 8
mov dword [esp + 0xac], ebp
mov esi, dword [esp + 0xe4]
add esi, ebp
xor edi, esi
mov ebx, esi
mov esi, dword [esp + 0x278]
mov ebp, dword [esp + 0x270]
cmp esi, ebp
ja 0x51c40b
mov dword [esp + 0x178], eax
mov dword [esp + 0x174], ecx
mov dword [esp + 0x170], edx
mov dword [esp + 0x16c], ebx
mov ebp, dword [esp + 0x128]
rol ebp, 7
mov dword [esp + 0x110], ebp
mov ebx, dword [esp + 0x12c]
rol ebx, 7
mov dword [esp + 0x10c], ebx
rol edi, 7
mov dword [esp + 0x114], edi
mov dword [esp + 0x248], eax
xor eax, eax
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x248]
jmp 0x51bfd3
inc esi
mov dword [esp + 0xa0], esi
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x138]
add eax, ebx
mov ecx, dword [esp + 0xd4]
xor ecx, eax
rol ecx, 0x10
mov edx, dword [esp + 0xfc]
add edx, ecx
xor ebx, edx
rol ebx, 0xc
add eax, ebx
xor ecx, eax
rol ecx, 8
mov dword [esp + 0xd8], ecx
add edx, ecx
mov dword [esp + 0xf0], edx
xor ebx, edx
rol ebx, 7
mov dword [esp + 0x130], ebx
mov esi, dword [esp + 0x124]
mov ebx, dword [esp + 0x140]
add ebx, esi
mov edx, dword [esp + 0xc0]
xor edx, ebx
rol edx, 0x10
add edi, edx
xor esi, edi
rol esi, 0xc
add ebx, esi
mov dword [esp + 0x134], ebx
xor edx, ebx
rol edx, 8
mov dword [esp + 0xb8], edx
add edi, edx
mov dword [esp + 0xdc], edi
xor esi, edi
rol esi, 7
mov edi, dword [esp + 0x104]
mov edx, dword [esp + 0x144]
add edx, edi
xor ebp, edx
rol ebp, 0x10
mov ecx, dword [esp + 0xf4]
add ecx, ebp
xor edi, ecx
rol edi, 0xc
add edx, edi
mov dword [esp + 0x13c], edx
xor ebp, edx
rol ebp, 8
mov dword [esp + 0xb0], ebp
add ecx, ebp
xor edi, ecx
rol edi, 7
mov dword [esp + 0x11c], edi
mov ebp, dword [esp + 0x120]
mov edx, dword [esp + 0x148]
add edx, ebp
mov ebx, dword [esp + 0xc4]
xor ebx, edx
rol ebx, 0x10
mov edi, dword [esp + 0xe0]
add edi, ebx
xor ebp, edi
rol ebp, 0xc
add edx, ebp
xor ebx, edx
rol ebx, 8
add edi, ebx
xor ebp, edi
rol ebp, 7
add eax, esi
xor ebx, eax
rol ebx, 0x10
add ecx, ebx
xor esi, ecx
rol esi, 0xc
add eax, esi
mov dword [esp + 0x24], eax
xor ebx, eax
rol ebx, 8
mov dword [esp + 0x10], ebx
add ecx, ebx
mov dword [esp + 0x18], ecx
xor esi, ecx
rol esi, 7
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x134]
add ecx, eax
mov ebx, dword [esp + 0xd8]
xor ebx, ecx
rol ebx, 0x10
add edi, ebx
xor eax, edi
rol eax, 0xc
add ecx, eax
mov dword [esp + 0x2c], ecx
xor ebx, ecx
rol ebx, 8
mov dword [esp + 0x14], ebx
add edi, ebx
xor eax, edi
rol eax, 7
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x13c]
add eax, ebp
mov ecx, dword [esp + 0xb8]
xor ecx, eax
rol ecx, 0x10
mov ebx, dword [esp + 0xf0]
add ebx, ecx
xor ebp, ebx
rol ebp, 0xc
add eax, ebp
mov dword [esp + 0x28], eax
xor ecx, eax
rol ecx, 8
mov dword [esp + 0xc], ecx
add ebx, ecx
mov dword [esp + 0x1c], ebx
xor ebp, ebx
rol ebp, 7
mov eax, dword [esp + 0x130]
add edx, eax
mov ecx, dword [esp + 0xb0]
xor ecx, edx
rol ecx, 0x10
mov ebx, dword [esp + 0xdc]
add ebx, ecx
xor eax, ebx
rol eax, 0xc
add edx, eax
xor ecx, edx
rol ecx, 8
add ebx, ecx
xor eax, ebx
rol eax, 7
mov dword [esp + 0x124], esi
mov dword [esp + 0x1e0], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x138], eax
mov dword [esp + 0x1d8], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x1d0], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0xc4], edx
mov dword [esp + 0x1c8], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x104], ebx
mov dword [esp + 0x1c0], ebp
mov ebp, dword [esp + 0x14]
mov dword [esp + 0xd4], ebp
mov dword [esp + 0x1b8], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x140], esi
mov dword [esp + 0xe0], edi
mov ebx, dword [esp + 0x1e0]
mov esi, dword [esp + 0x1d0]
mov edi, dword [esp + 0x1c8]
mov ebp, dword [esp + 0x1d8]
mov dword [esp + 0x1b0], ebx
mov ebx, dword [esp + 0x1c0]
mov dword [esp + 0x120], ebx
mov dword [esp + 0x1a8], ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0xfc], ebp
mov dword [esp + 0x1a0], esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x144], esi
mov dword [esp + 0x198], edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0xc0], edi
mov eax, dword [esp + 0x178]
mov ecx, dword [esp + 0x174]
mov edx, dword [esp + 0x170]
mov ebx, dword [esp + 0x1e0]
mov ebp, dword [esp + 0x1d8]
mov esi, dword [esp + 0x1d0]
mov edi, dword [esp + 0x1c8]
mov dword [esp + 0x148], esi
mov esi, dword [esp + 0xa0]
cmp esi, 9
jl 0x51b9ae
mov dword [esp + 0xec], edi
mov dword [esp + 0xd0], ebp
mov esi, dword [esp + 0x264]
mov ebp, dword [esi + 4]
mov edi, dword [esi + 8]
mov dword [esp + 0x168], edi
mov edi, dword [esi + 0xc]
mov dword [esp + 0x164], edi
mov edi, dword [esi + 0x14]
mov dword [esp + 0x160], edi
mov edi, dword [esi + 0x18]
mov dword [esp + 0x15c], edi
mov edi, dword [esi + 0x1c]
mov dword [esp + 0x158], edi
mov edi, dword [esi + 0x24]
mov dword [esp + 0x154], edi
mov edi, dword [esi + 0x28]
mov dword [esp + 0x150], edi
mov edi, dword [esi + 0x2c]
mov dword [esp + 0x14c], edi
mov edi, dword [esp + 0xc8]
inc edi
mov dword [esi + 0x20], edi
mov edi, dword [esp + 0x108]
add ebx, edi
mov dword [esp + 0x84], ebx
mov edi, dword [esp + 0x124]
add ebp, edi
mov dword [esp + 0x64], ebp
mov edi, dword [esp + 0x104]
mov ebp, dword [esp + 0x168]
add ebp, edi
mov dword [esp + 0x68], ebp
mov edi, dword [esp + 0x120]
mov ebp, dword [esp + 0x164]
add ebp, edi
mov dword [esp + 0x88], ebp
mov edi, dword [esp + 0xfc]
mov ebp, dword [esp + 0xe8]
add ebp, edi
mov dword [esp + 0x60], ebp
mov edi, dword [esp + 0xec]
mov ebp, dword [esp + 0x160]
add ebp, edi
mov dword [esp + 0x7c], ebp
mov edi, dword [esp + 0xf4]
mov ebp, dword [esp + 0x15c]
add ebp, edi
mov dword [esp + 0x6c], ebp
mov edi, dword [esp + 0xe0]
mov ebp, dword [esp + 0x158]
add ebp, edi
mov dword [esp + 0x74], ebp
mov edi, dword [esp + 0xd4]
mov ebp, dword [esp + 0xc8]
add edi, ebp
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0xc0]
mov ebx, dword [esp + 0x154]
add ebx, edi
mov dword [esp + 0x78], ebx
mov edi, dword [esp + 0xd0]
mov ebx, dword [esp + 0x150]
add ebx, edi
mov dword [esp + 0x70], ebx
mov edi, dword [esp + 0xc4]
mov ebx, dword [esp + 0x14c]
add ebx, edi
cmp ebp, 0xffffffff
je 0x51c3f3
mov ebp, dword [esp + 0x278]
mov edi, dword [esp + 0xa4]
cmp ebp, edi
jb 0x51c3ea
mov dword [esp + 0x8c], ebx
sub ebp, edi
mov dword [esp + 0x94], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, edi
mov ebx, dword [esp + 0x274]
add ebx, ebp
mov dword [esp + 0x258], ebx
mov ebx, dword [esp + 0x268]
add ebp, ebx
mov ebx, dword [esp + 0xa8]
cmp ebx, edi
jne 0x51c2b6
lea ebp, [esi + 0x30]
mov dword [esp + 0x258], ebp
mov dword [esp + 0x188], eax
mov eax, 0x40
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x188]
mov ebx, dword [esp + 0x98]
cmp ebx, 0x40
jb 0x51c3de
jb 0x51c3d2
mov ebx, dword [esp + 0x138]
add ebx, 0x61707865
nop
mov eax, dword [esp + 0x258]
xor ebx, dword [eax]
mov dword [ebp], ebx
mov ebx, dword [esp + 0x140]
add ebx, 0x3320646e
nop
xor ebx, dword [eax + 4]
mov dword [ebp + 4], ebx
mov ebx, dword [esp + 0x144]
add ebx, 0x79622d32
nop
xor ebx, dword [eax + 8]
mov dword [ebp + 8], ebx
mov ebx, dword [esp + 0x148]
add ebx, 0x6b206574
nop
xor ebx, dword [eax + 0xc]
mov dword [ebp + 0xc], ebx
nop
mov ebx, dword [esp + 0x84]
xor ebx, dword [eax + 0x10]
mov dword [ebp + 0x10], ebx
nop
mov ebx, dword [esp + 0x64]
xor ebx, dword [eax + 0x14]
mov dword [ebp + 0x14], ebx
nop
mov ebx, dword [esp + 0x68]
xor ebx, dword [eax + 0x18]
mov dword [ebp + 0x18], ebx
nop
mov ebx, dword [esp + 0x88]
xor ebx, dword [eax + 0x1c]
mov dword [ebp + 0x1c], ebx
nop
mov ebx, dword [esp + 0x60]
xor ebx, dword [eax + 0x20]
mov dword [ebp + 0x20], ebx
nop
mov ebx, dword [esp + 0x7c]
xor ebx, dword [eax + 0x24]
mov dword [ebp + 0x24], ebx
nop
mov ebx, dword [esp + 0x6c]
xor ebx, dword [eax + 0x28]
mov dword [ebp + 0x28], ebx
nop
mov ebx, dword [esp + 0x74]
xor ebx, dword [eax + 0x2c]
mov dword [ebp + 0x2c], ebx
nop
mov ebx, dword [esp + 0x80]
xor ebx, dword [eax + 0x30]
mov dword [ebp + 0x30], ebx
nop
mov ebx, dword [esp + 0x78]
xor ebx, dword [eax + 0x34]
mov dword [ebp + 0x34], ebx
nop
mov ebx, dword [esp + 0x70]
xor ebx, dword [eax + 0x38]
mov dword [ebp + 0x38], ebx
nop
mov ebx, dword [esp + 0x8c]
xor ebx, dword [eax + 0x3c]
mov dword [ebp + 0x3c], ebx
lea eax, [edi + 0x40]
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0x110]
mov edi, dword [esp + 0x278]
mov ebx, dword [esp + 0x10c]
mov esi, edi
mov edi, dword [esp + 0x114]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x178]
mov edi, dword [esp + 0xa4]
cmp esi, edi
jle 0x51c2d7
mov esi, dword [esp + 0x264]
mov edi, dword [esi]
mov dword [esp + 0x108], edi
mov ebx, dword [esi + 0x10]
mov dword [esp + 0xe8], ebx
mov esi, dword [esi + 0x20]
mov dword [esp + 0xc8], esi
nop
nop
nop
nop
lea ebp, [edi + 0x61707865]
xor ebp, esi
rol ebp, 0x10
add ebx, ebp
mov dword [esp + 0x168], ebx
xor ebx, edi
rol ebx, 0xc
lea esi, [edi + ebx]
lea edi, [ebx + edi + 0x61707865]
xor edi, ebp
rol edi, 8
mov dword [esp + 0xb4], edi
mov ebp, dword [esp + 0x168]
add ebp, edi
mov dword [esp + 0xf8], ebp
xor ebx, ebp
rol ebx, 7
mov dword [esp + 0x118], ebx
mov ebx, dword [esp + 0x110]
lea ebp, [esi + ebx]
lea esi, [esi + ebx + 0x61707865]
mov edi, dword [esp + 0xac]
xor esi, edi
rol esi, 0x10
lea edi, [esi + edx]
xor ebx, edi
rol ebx, 0xc
lea ebp, [ebp + ebx + 0x61707865]
mov dword [esp + 0x5c], ebp
xor esi, ebp
rol esi, 8
mov dword [esp + 0x44], esi
add edi, esi
mov dword [esp + 0x54], edi
xor ebx, edi
rol ebx, 7
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x10c]
mov ebp, dword [esp + 0x184]
lea esi, [ebp + ebx]
lea ebp, [ebp + ebx + 0x3320646e]
mov edi, dword [esp + 0xb4]
xor edi, ebp
rol edi, 0x10
mov ebp, dword [esp + 0x16c]
add ebp, edi
xor ebx, ebp
rol ebx, 0xc
lea esi, [esi + ebx + 0x3320646e]
mov dword [esp + 0x58], esi
xor edi, esi
rol edi, 8
mov dword [esp + 0x4c], edi
add ebp, edi
mov dword [esp + 0x50], ebp
xor ebx, ebp
rol ebx, 7
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x114]
mov ebp, dword [esp + 0x180]
lea esi, [ebp + ebx]
lea ebp, [ebp + ebx + 0x79622d32]
mov edi, dword [esp + 0xbc]
xor ebp, edi
rol ebp, 0x10
mov edi, dword [esp + 0xf8]
add edi, ebp
xor ebx, edi
rol ebx, 0xc
lea esi, [esi + ebx + 0x79622d32]
mov dword [esp + 0x40], esi
xor ebp, esi
rol ebp, 8
mov dword [esp + 0x48], ebp
add edi, ebp
mov dword [esp + 0x30], edi
xor ebx, edi
rol ebx, 7
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x118]
mov ebp, dword [esp + 0x17c]
lea esi, [ebp + ebx]
lea ebp, [ebp + ebx + 0x6b206574]
xor ebp, ecx
rol ebp, 0x10
lea edi, [ebp + eax]
xor ebx, edi
rol ebx, 0xc
lea esi, [esi + ebx + 0x6b206574]
xor ebp, esi
rol ebp, 8
add edi, ebp
xor ebx, edi
rol ebx, 7
mov dword [esp + 0x240], eax
xor eax, eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x124], eax
mov dword [esp + 0x238], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x138], ecx
mov dword [esp + 0x230], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0xf4], edx
mov dword [esp + 0x228], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0xc4], ebx
mov dword [esp + 0x220], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x104], ebp
mov dword [esp + 0x218], esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0xd4], esi
mov dword [esp + 0x210], edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x140], edi
mov dword [esp + 0x208], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0xe0], edi
mov ebx, dword [esp + 0x228]
mov esi, dword [esp + 0x218]
mov edi, dword [esp + 0x210]
mov ebp, dword [esp + 0x220]
mov dword [esp + 0x200], ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x120], ebx
mov dword [esp + 0x1f8], ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0xfc], ebp
mov dword [esp + 0x1f0], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x144], esi
mov dword [esp + 0x1e8], edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0xc0], edi
mov eax, dword [esp + 0x240]
mov ecx, dword [esp + 0x238]
mov edx, dword [esp + 0x230]
mov ebx, dword [esp + 0x228]
mov ebp, dword [esp + 0x220]
mov esi, dword [esp + 0x218]
mov edi, dword [esp + 0x210]
jmp 0x51bcaa
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x190]
jmp 0x51bea1
mov edx, dword [esp + 0x90]
test edx, edx
je 0x51c339
add edx, 0xffffffc0
neg edx
mov ebx, dword [esp + 0x264]
mov dword [ebx + 0x70], edx
mov eax, dword [esp + 0xa8]
cmp esi, eax
jb 0x51c3cb
sub esi, eax
mov ecx, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, eax
mov eax, dword [esp + 0x268]
add eax, esi
cmp ecx, 0x40
jle 0x51c322
mov ecx, 0x40
lea edx, [ebx + 0x30]
cmp eax, edx
je 0x51c339
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0045eba0
add esp, 0x260
ret
mov ebx, 0x40
jmp 0x51b808
add esp, 0x260
ret
add esp, 0x260
ret
mov eax, edx
mov edx, dword [esp + 0x278]
jmp 0x51b6b4
mov edx, eax
mov edi, dword [esp + 0x270]
mov ebp, dword [esp + 0x274]
mov esi, dword [esp + 0x268]
mov ecx, dword [esp + 0x27c]
jmp 0x51b7ab
mov ebp, dword [esp + 0x268]
mov eax, esi
mov esi, dword [esp + 0x274]
cmp ebp, esi
jne 0x51c3a4
mov esi, eax
jmp 0x51b671
nop
mov ecx, ebp
mov edx, esi
lea esi, [esi + eax - 1]
cmp ebp, esi
ja 0x51c3c4
lea esi, [eax + ecx - 1]
cmp edx, esi
jbe 0x51c449
mov esi, eax
jmp 0x51b671
mov esi, eax
jmp 0x51b671
mov ecx, esi
call fcn.0045e300
mov ecx, 0x40
mov edx, ebx
call fcn.0045e2e0
mov ecx, 0x40
mov edx, ebx
call fcn.0045e2e0
mov eax, edi
mov ecx, ebp
call fcn.0045e300
lea eax, [0x5a5ba0]
mov dword [esp], eax
lea eax, [0x60e808]
mov dword [esp + 4], eax
call fcn.00431c00
mov edx, esi
mov ebx, ebp
call fcn.0045e340
mov ecx, ebx
call fcn.0045e300
mov ecx, edx
call fcn.0045e300
mov ecx, eax
mov eax, esi
call fcn.0045e2a0
mov ecx, eax
mov edx, esi
call fcn.0045e2e0
mov ecx, eax
mov edx, esi
call fcn.0045e2e0
mov eax, ebp
mov ecx, 0x40
call fcn.0045e300
lea eax, [0x5a5ba0]
mov dword [esp], eax
lea eax, [0x60e800]
mov dword [esp + 4], eax
call fcn.00431c00
lea eax, [0x5a5ba0]
mov dword [esp], eax
lea eax, [0x60e7f8]
mov dword [esp + 4], eax
call fcn.00431c00
nop
call fcn.0045ccc0
jmp fcn.0051b630