Function at 0x4453e0
Capabilities:
Encode data using xor
Encrypt data using curve25519
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2d8
mov eax, dword [0x4c9100]
xor eax, esp
mov dword [esp + 0x2d4], eax
mov eax, dword [ebp + 8]
lea edx, [esp + 0x298]
push esi
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x218], eax
xor eax, eax
push edi
mov dword [esp + 0x2c8], 0xffffffff
mov dword [esp + 0x2cc], 0x20
mov byte [esp + 0x2c1], 1
mov dword [esp + 0x2d0], edx
mov cl, byte [eax + esi]
mov byte [edx + eax], cl
inc eax
cmp eax, 0x20
jae 0x44544c
mov edx, dword [esp + 0x2d0]
jmp 0x445437
mov eax, dword [esp + 0x2d0]
xorps xmm0, xmm0
mov edx, 1
mov dword [esp + 0xd4], 0
xor esi, esi
mov dword [esp + 0x4c], edx
mov dword [esp + 0xb0], edx
and byte [eax], 0xf8
mov eax, dword [esp + 0x2d0]
movups xmmword [esp + 0xb4], xmm0
mov dword [esp + 0x12c], edx
movups xmmword [esp + 0xc4], xmm0
and byte [eax + 0x1f], 0x7f
mov eax, dword [esp + 0x2d0]
movaps xmmword [esp + 0xe0], xmm0
movaps xmmword [esp + 0xf0], xmm0
movq qword [esp + 0x100], xmm0
or byte [eax + 0x1f], 0x40
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x11c], 0
mov dword [esp + 0x14], esi
movups xmmword [esp + 0x54], xmm0
movups xmmword [esp + 0x64], xmm0
test eax, eax
je 0x4454e2
mov esi, dword [eax]
mov dword [esp + 0x14], esi
xor ecx, ecx
mov dword [esp + 0x18], ecx
add eax, 4
je 0x4454f3
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
mov edx, 0
mov dword [esp + 0x48], edx
add eax, 4
je 0x445507
mov edx, dword [eax]
mov dword [esp + 0x48], edx
mov dword [esp + 0x2c], 0
add eax, 4
je 0x44551a
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], 0
add eax, 4
je 0x44552d
mov ecx, dword [eax]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], 0
add eax, 4
je 0x445540
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], 0
add eax, 4
je 0x445553
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
xor edi, edi
add eax, 4
je 0x44555c
mov edi, dword [eax]
mov eax, dword [esp + 0x18]
and esi, 0x3ffffff
mov ecx, eax
shr dword [esp + 0x48], 0xd
shr eax, 0x13
shl edx, 0xd
or edx, eax
shr dword [esp + 0x14], 0x1a
mov eax, dword [esp + 0x2c]
and edx, 0x3ffffff
shl eax, 0x13
or eax, dword [esp + 0x48]
and eax, 0x1ffffff
shl ecx, 6
mov dword [esp + 0x88], eax
mov dword [esp + 0x1ec], eax
mov eax, dword [esp + 0x2c]
shr eax, 6
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1f0], eax
mov eax, dword [esp + 0x24]
shr dword [esp + 0x24], 0x19
and eax, 0x1ffffff
mov dword [esp + 0x84], eax
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x20]
shr dword [esp + 0x20], 0x13
shl eax, 7
or eax, dword [esp + 0x24]
and eax, 0x3ffffff
or ecx, dword [esp + 0x14]
mov dword [esp + 0x80], eax
and ecx, 0x1ffffff
mov dword [esp + 0x1f8], eax
mov eax, dword [esp + 0x1c]
shr dword [esp + 0x1c], 0xc
shl eax, 0xd
or eax, dword [esp + 0x20]
and eax, 0x1ffffff
mov dword [esp + 0x1e0], esi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x1fc], eax
mov eax, edi
shl eax, 0x14
or eax, dword [esp + 0x1c]
and eax, 0x3ffffff
shr edi, 6
mov dword [esp + 0x78], eax
and edi, 0x1ffffff
mov dword [esp + 0x200], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x1e8], edx
mov dword [esp + 0x204], edi
mov dword [esp + 0x15c], 1
mov dword [esp + 0x164], 0xfd
mov dword [esp + 0x168], esi
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x170], edx
mov dword [esp + 0x18c], edi
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x24], eax
nop word [eax + eax]
mov eax, dword [esp + 0x12c]
add eax, esi
sub esi, dword [esp + 0x12c]
mov dword [esp + 0x134], eax
add esi, 0x7ffffda
mov eax, dword [esp + 0x24]
add eax, ecx
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x20]
add eax, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x13c], eax
add edx, 0x7fffffe
mov eax, dword [esp + 0x88]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x48]
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x84]
add eax, dword [esp + 0x130]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x80]
add eax, dword [esp + 0x128]
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x7c]
add eax, dword [esp + 0x124]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x78]
add eax, dword [esp + 0x120]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x11c]
add eax, edi
mov dword [esp + 0x158], eax
mov eax, esi
shr eax, 0x1a
sub eax, dword [esp + 0x24]
add eax, 0x3fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x19
sub ecx, dword [esp + 0x20]
and eax, 0x1ffffff
mov dword [esp + 0x54], eax
add ecx, edx
mov eax, ecx
shr ecx, 0x1a
sub ecx, dword [esp + 0x1c]
and eax, 0x3ffffff
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x88]
add eax, 0x3fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x19
sub ecx, dword [esp + 0x48]
and eax, 0x1ffffff
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x2c]
add eax, 0x7fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x1a
sub ecx, dword [esp + 0x130]
and eax, 0x3ffffff
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x84]
add eax, 0x3fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x19
sub ecx, dword [esp + 0x128]
and eax, 0x1ffffff
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x80]
add eax, 0x7fffffe
add ecx, eax
mov eax, ecx
and eax, 0x3ffffff
shr ecx, 0x1a
mov dword [esp + 0x68], eax
sub ecx, dword [esp + 0x124]
and esi, 0x3ffffff
mov eax, dword [esp + 0x7c]
add eax, 0x3fffffe
mov edx, dword [esp + 0x4c]
add ecx, eax
mov eax, ecx
shr ecx, 0x19
sub ecx, dword [esp + 0x120]
and eax, 0x1ffffff
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x78]
add eax, 0x7fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x1a
sub ecx, dword [esp + 0x11c]
and eax, 0x3ffffff
mov dword [esp + 0x70], eax
add ecx, 0x3fffffe
add ecx, edi
mov eax, ecx
shr ecx, 0x19
and eax, 0x1ffffff
mov dword [esp + 0x74], eax
imul eax, ecx, 0x13
mov ecx, dword [esp + 0xb4]
add eax, esi
mov esi, dword [esp + 0xd4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x1a0]
add eax, edx
sub edx, dword [esp + 0x1a0]
mov dword [esp + 0x250], eax
add edx, 0x7ffffda
mov eax, dword [esp + 0x19c]
add eax, ecx
add ecx, 0x3fffffe
mov dword [esp + 0x254], eax
mov eax, dword [esp + 0xb8]
add eax, dword [esp + 0x190]
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0xbc]
add eax, dword [esp + 0x8c]
mov dword [esp + 0x25c], eax
mov eax, dword [esp + 0xc0]
add eax, dword [esp + 0x90]
mov dword [esp + 0x260], eax
mov eax, dword [esp + 0xc4]
add eax, dword [esp + 0xa4]
mov dword [esp + 0x264], eax
mov eax, dword [esp + 0xc8]
add eax, dword [esp + 0xa8]
mov dword [esp + 0x268], eax
mov eax, dword [esp + 0xcc]
add eax, dword [esp + 0x44]
mov dword [esp + 0x26c], eax
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0xd0]
mov dword [esp + 0x270], eax
mov eax, dword [esp + 0x18]
add eax, esi
mov dword [esp + 0x274], eax
mov eax, edx
shr eax, 0x1a
sub eax, dword [esp + 0x19c]
add ecx, eax
mov eax, ecx
shr ecx, 0x19
sub ecx, dword [esp + 0x190]
and eax, 0x1ffffff
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xb8]
add eax, 0x7fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x1a
and eax, 0x3ffffff
sub ecx, dword [esp + 0x8c]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xbc]
add eax, 0x3fffffe
add esi, 0x3fffffe
add ecx, eax
and edx, 0x3ffffff
mov eax, ecx
shr ecx, 0x19
sub ecx, dword [esp + 0x90]
and eax, 0x1ffffff
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0xc0]
add eax, 0x7fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x1a
sub ecx, dword [esp + 0xa4]
and eax, 0x3ffffff
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xc4]
add eax, 0x3fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x19
sub ecx, dword [esp + 0xa8]
and eax, 0x1ffffff
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0xc8]
add eax, 0x7fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x1a
sub ecx, dword [esp + 0x44]
and eax, 0x3ffffff
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xcc]
add eax, 0x3fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x19
sub ecx, dword [esp + 0x30]
and eax, 0x1ffffff
mov dword [esp + 0xfc], eax
add ecx, 0x7fffffe
add ecx, dword [esp + 0xd0]
mov eax, ecx
shr ecx, 0x1a
sub ecx, dword [esp + 0x18]
and eax, 0x3ffffff
mov dword [esp + 0x100], eax
add ecx, esi
mov eax, ecx
shr ecx, 0x19
and eax, 0x1ffffff
mov dword [esp + 0x104], eax
imul eax, ecx, 0x13
add eax, edx
mov dword [esp + 0xe0], eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x254]
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.00444b20
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0x144]
push eax
lea eax, [esp + 0xf4]
push eax
call fcn.00444b20
mov eax, dword [esp + 0xc8]
add eax, dword [esp + 0xf8]
mov esi, dword [esp + 0xcc]
mov edx, dword [esp + 0xfc]
mov dword [esp + 0x238], eax
lea eax, [esi + edx]
mov dword [esp + 0x23c], eax
mov eax, dword [esp + 0xd0]
add eax, dword [esp + 0x100]
mov dword [esp + 0x240], eax
mov eax, dword [esp + 0x104]
add eax, dword [esp + 0xd4]
lea ecx, [esi + 0x3fffffe]
mov dword [esp + 0x244], eax
mov eax, dword [esp + 0x108]
add eax, dword [esp + 0xd8]
mov dword [esp + 0x248], eax
mov eax, dword [esp + 0x10c]
add eax, dword [esp + 0xdc]
mov dword [esp + 0x24c], eax
mov eax, dword [esp + 0x110]
add eax, dword [esp + 0xe0]
mov dword [esp + 0x250], eax
mov eax, dword [esp + 0x114]
add eax, dword [esp + 0xe4]
mov dword [esp + 0x254], eax
mov eax, dword [esp + 0x118]
add eax, dword [esp + 0xe8]
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0x11c]
add eax, dword [esp + 0xec]
mov dword [esp + 0x25c], eax
mov eax, dword [esp + 0xc8]
sub eax, dword [esp + 0xf8]
add eax, 0x7ffffda
mov dword [esp + 0x40], eax
shr eax, 0x1a
sub eax, edx
add ecx, eax
mov eax, ecx
shr ecx, 0x19
sub ecx, dword [esp + 0x100]
and eax, 0x1ffffff
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0xd0]
add eax, 0x7fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x1a
sub ecx, dword [esp + 0x104]
and eax, 0x3ffffff
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0xd4]
add eax, 0x3fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x19
sub ecx, dword [esp + 0x108]
and eax, 0x1ffffff
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xd8]
add eax, 0x7fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x1a
sub ecx, dword [esp + 0x10c]
and eax, 0x3ffffff
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0xdc]
add eax, 0x3fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x19
sub ecx, dword [esp + 0x110]
and eax, 0x1ffffff
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0xe0]
add eax, 0x7fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x1a
sub ecx, dword [esp + 0x114]
and eax, 0x3ffffff
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0xe4]
add eax, 0x3fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x19
and eax, 0x1ffffff
sub ecx, dword [esp + 0x118]
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0xe8]
add eax, 0x7fffffe
mov edx, dword [esp + 0x40]
add ecx, eax
and edx, 0x3ffffff
mov eax, ecx
shr ecx, 0x1a
sub ecx, dword [esp + 0x11c]
and eax, 0x3ffffff
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0xec]
add eax, 0x3fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x19
and eax, 0x1ffffff
mov dword [esp + 0x11c], eax
imul eax, ecx, 0x13
add eax, edx
mov dword [esp + 0xf8], eax
lea eax, [esp + 0xf8]
push eax
push eax
call fcn.00446ed0
lea eax, [esp + 0x240]
push eax
lea eax, [esp + 0xd4]
push eax
call fcn.00446ed0
lea eax, [esp + 0x208]
push eax
lea eax, [esp + 0x10c]
push eax
push eax
call fcn.00444b20
lea eax, [esp + 0x168]
push eax
push eax
call fcn.00446ed0
lea eax, [esp + 0x8c]
push eax
push eax
call fcn.00446ed0
add esp, 0x44
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x170]
push eax
call fcn.00444b20
mov ecx, dword [esp + 0x140]
sub ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x144]
add ecx, 0x7ffffda
add edx, 0x3fffffe
mov eax, ecx
shr eax, 0x1a
sub eax, dword [esp + 0x60]
add eax, edx
mov edx, dword [esp + 0x148]
mov esi, eax
add edx, 0x7fffffe
shr eax, 0x19
and esi, 0x1ffffff
sub eax, dword [esp + 0x64]
add eax, edx
mov dword [esp + 0x60], esi
mov edx, dword [esp + 0x14c]
mov edi, eax
shr eax, 0x1a
add edx, 0x3fffffe
sub eax, dword [esp + 0x68]
and edi, 0x3ffffff
add eax, edx
mov dword [esp + 0x64], edi
mov edx, eax
and edx, 0x1ffffff
shr eax, 0x19
mov dword [esp + 0x34], edx
mov dword [esp + 0x68], edx
sub eax, dword [esp + 0x6c]
and ecx, 0x3ffffff
mov edx, dword [esp + 0x150]
add edx, 0x7fffffe
add eax, edx
mov edx, eax
shr eax, 0x1a
sub eax, dword [esp + 0x70]
and edx, 0x3ffffff
mov dword [esp + 0x58], edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x154]
add edx, 0x3fffffe
add eax, edx
mov edx, eax
shr eax, 0x19
sub eax, dword [esp + 0x74]
and edx, 0x1ffffff
mov dword [esp + 0x24], edx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x158]
add edx, 0x7fffffe
add eax, edx
mov edx, eax
shr eax, 0x1a
sub eax, dword [esp + 0x78]
and edx, 0x3ffffff
mov dword [esp + 0x3c], edx
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x15c]
add edx, 0x3fffffe
add eax, edx
mov edx, eax
shr eax, 0x19
sub eax, dword [esp + 0x7c]
and edx, 0x1ffffff
mov dword [esp + 0x50], edx
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x160]
add edx, 0x7fffffe
add eax, edx
mov edx, eax
shr eax, 0x1a
sub eax, dword [esp + 0x80]
and edx, 0x3ffffff
mov dword [esp + 0xb4], edx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x164]
add edx, 0x3fffffe
add eax, edx
mov edx, eax
shr eax, 0x19
imul eax, eax, 0x13
and edx, 0x1ffffff
mov dword [esp + 0xb0], edx
mov dword [esp + 0x80], edx
add eax, ecx
mov ecx, 0x1db41
mov dword [esp + 0x5c], eax
mul ecx
xor ecx, ecx
mov dword [esp + 0x9c], eax
shrd eax, edx, 0x1a
mov edx, 0x1db41
mov dword [esp + 0x20], eax
mov eax, esi
mov esi, dword [esp + 0x20]
mul edx
add esi, eax
mov eax, edi
mov edi, 0x1db41
mov dword [esp + 0x20], esi
adc ecx, edx
mul edi
shrd esi, ecx, 0x19
xor ecx, ecx
add esi, eax
mov dword [esp + 0x98], esi
adc ecx, edx
shrd esi, ecx, 0x1a
xor ecx, ecx
mov eax, dword [esp + 0x34]
mul edi
add esi, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x34], esi
adc ecx, edx
mul edi
shrd esi, ecx, 0x19
xor ecx, ecx
add esi, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x58], esi
adc ecx, edx
mul edi
shrd esi, ecx, 0x1a
xor ecx, ecx
add esi, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x24], esi
adc ecx, edx
mul edi
shrd esi, ecx, 0x19
xor ecx, ecx
add esi, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x3c], esi
adc ecx, edx
mul edi
shrd esi, ecx, 0x1a
xor ecx, ecx
add esi, eax
mov eax, dword [esp + 0xb4]
mov edi, esi
mov dword [esp + 0x50], esi
adc ecx, edx
mov edx, 0x1db41
mul edx
shrd edi, ecx, 0x19
xor ecx, ecx
add edi, eax
mov eax, dword [esp + 0xb0]
mov esi, edi
adc ecx, edx
mov edx, 0x1db41
mul edx
shrd esi, ecx, 0x1a
xor ecx, ecx
add esi, eax
mov eax, esi
adc ecx, edx
shrd eax, ecx, 0x19
mov ecx, dword [esp + 0x9c]
imul eax, eax, 0x13
and ecx, 0x3ffffff
add eax, dword [esp + 0x140]
add ecx, eax
mov eax, dword [esp + 0x20]
and eax, 0x1ffffff
mov dword [esp + 0x1bc], ecx
add eax, dword [esp + 0x144]
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0x98]
and eax, 0x3ffffff
add eax, dword [esp + 0x148]
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x34]
and eax, 0x1ffffff
add eax, dword [esp + 0x14c]
mov dword [esp + 0x1c8], eax
mov eax, dword [esp + 0x58]
and eax, 0x3ffffff
add eax, dword [esp + 0x150]
mov dword [esp + 0x1cc], eax
mov eax, dword [esp + 0x24]
and eax, 0x1ffffff
add eax, dword [esp + 0x154]
mov dword [esp + 0x1d0], eax
mov eax, dword [esp + 0x3c]
and eax, 0x3ffffff
add eax, dword [esp + 0x158]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x50]
and edi, 0x3ffffff
add edi, dword [esp + 0x160]
and eax, 0x1ffffff
add eax, dword [esp + 0x15c]
and esi, 0x1ffffff
add esi, dword [esp + 0x164]
mov dword [esp + 0x1d8], eax
lea eax, [esp + 0x1bc]
push eax
lea eax, [esp + 0x60]
mov dword [esp + 0x1e0], edi
push eax
push eax
mov dword [esp + 0x1ec], esi
call fcn.00444b20
mov eax, dword [esp + 0x17c]
add esp, 0x18
mov ecx, dword [esp + 0x2d0]
mov esi, dword [esp + 0x168]
shr eax, 3
mov edi, dword [esp + 0x16c]
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x164]
movzx ecx, al
mov eax, esi
and ecx, 7
shr edx, cl
and edx, 1
mov ecx, edx
mov dword [esp + 0x160], edx
xor ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0xb0]
neg ecx
xor eax, edx
and eax, ecx
xor edx, eax
xor esi, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xb4]
mov eax, edx
xor eax, edi
mov dword [esp + 0x168], esi
and eax, ecx
xor edx, eax
xor edi, eax
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0xb8]
mov eax, edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x16c], edi
mov edi, dword [esp + 0x170]
xor eax, edi
and eax, ecx
xor edx, eax
xor edi, eax
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0xbc]
mov eax, edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x170], edi
mov edi, dword [esp + 0x174]
xor eax, edi
and eax, ecx
xor edx, eax
xor edi, eax
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0xc0]
mov eax, edx
mov dword [esp + 0x88], edi
mov dword [esp + 0x174], edi
mov edi, dword [esp + 0x178]
xor eax, edi
and eax, ecx
xor edi, eax
xor edx, eax
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x178], edi
mov edi, dword [esp + 0x17c]
mov eax, edx
xor eax, edi
and eax, ecx
xor edx, eax
xor edi, eax
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0xc8]
mov eax, edx
mov dword [esp + 0x84], edi
mov dword [esp + 0x17c], edi
mov edi, dword [esp + 0x180]
xor eax, edi
and eax, ecx
xor edx, eax
xor edi, eax
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0xcc]
mov eax, edx
mov dword [esp + 0x80], edi
mov dword [esp + 0x180], edi
mov edi, dword [esp + 0x184]
xor eax, edi
and eax, ecx
xor edx, eax
xor edi, eax
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0xd0]
mov eax, edx
mov dword [esp + 0x7c], edi
mov dword [esp + 0x184], edi
mov edi, dword [esp + 0x188]
xor eax, edi
and eax, ecx
xor edx, eax
xor edi, eax
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0xd4]
mov eax, edx
mov dword [esp + 0x78], edi
mov dword [esp + 0x188], edi
mov edi, dword [esp + 0x18c]
xor eax, edi
and eax, ecx
xor edx, eax
xor edi, eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xd4], edx
mov edx, dword [esp + 0x50]
xor eax, edx
and eax, ecx
mov dword [esp + 0x18c], edi
xor edx, eax
mov dword [esp + 0x12c], edx
mov edx, dword [esp + 0xe0]
xor edx, eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x1a0], edx
mov edx, dword [esp + 0x54]
xor eax, edx
and eax, ecx
xor edx, eax
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0xe4]
xor edx, eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x19c], edx
mov edx, dword [esp + 0x58]
xor eax, edx
and eax, ecx
xor edx, eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0xe8]
xor edx, eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x190], edx
mov edx, dword [esp + 0x5c]
xor eax, edx
and eax, ecx
xor edx, eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xec]
xor edx, eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x60]
xor eax, edx
and eax, ecx
xor edx, eax
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0xf0]
xor edx, eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x64]
xor eax, edx
and eax, ecx
xor edx, eax
mov dword [esp + 0x130], edx
mov edx, dword [esp + 0xf4]
xor edx, eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x68]
xor eax, edx
and eax, ecx
xor edx, eax
mov dword [esp + 0x128], edx
mov edx, dword [esp + 0xf8]
xor edx, eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x6c]
xor eax, edx
and eax, ecx
xor edx, eax
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0xfc]
xor edx, eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x70]
xor eax, edx
and eax, ecx
xor edx, eax
mov dword [esp + 0x120], edx
mov edx, dword [esp + 0x100]
xor edx, eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x74]
xor eax, edx
and eax, ecx
mov ecx, dword [esp + 0x104]
xor edx, eax
xor ecx, eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x11c], edx
dec eax
mov edx, dword [esp + 0x160]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x15c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x164], eax
cmp eax, 2
jge 0x4457b0
mov dword [esp + 0x15c], 3
nop word [eax + eax]
mov eax, dword [esp + 0x12c]
add eax, esi
sub esi, dword [esp + 0x12c]
mov dword [esp + 0x134], eax
add esi, 0x7ffffda
mov eax, dword [esp + 0x24]
add eax, ecx
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x20]
add eax, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x13c], eax
add edx, 0x7fffffe
mov eax, dword [esp + 0x88]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x48]
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x84]
add eax, dword [esp + 0x130]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x80]
add eax, dword [esp + 0x128]
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x7c]
add eax, dword [esp + 0x124]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x78]
add eax, dword [esp + 0x120]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x11c]
add eax, edi
mov dword [esp + 0x158], eax
mov eax, esi
shr eax, 0x1a
sub eax, dword [esp + 0x24]
add eax, 0x3fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x19
sub ecx, dword [esp + 0x20]
and eax, 0x1ffffff
mov dword [esp + 0x54], eax
add ecx, edx
mov eax, ecx
shr ecx, 0x1a
sub ecx, dword [esp + 0x1c]
and eax, 0x3ffffff
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x88]
add eax, 0x3fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x19
sub ecx, dword [esp + 0x48]
and eax, 0x1ffffff
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x2c]
add eax, 0x7fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x1a
sub ecx, dword [esp + 0x130]
and eax, 0x3ffffff
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x84]
add eax, 0x3fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x19
sub ecx, dword [esp + 0x128]
and eax, 0x1ffffff
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x80]
add eax, 0x7fffffe
add ecx, eax
mov eax, ecx
and eax, 0x3ffffff
shr ecx, 0x1a
mov dword [esp + 0x68], eax
sub ecx, dword [esp + 0x124]
and esi, 0x3ffffff
mov eax, dword [esp + 0x7c]
add eax, 0x3fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x19
sub ecx, dword [esp + 0x120]
and eax, 0x1ffffff
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x78]
add eax, 0x7fffffe
add ecx, eax
mov eax, ecx
shr ecx, 0x1a
sub ecx, dword [esp + 0x11c]
and eax, 0x3ffffff
mov dword [esp + 0x70], eax
add ecx, 0x3fffffe
add ecx, edi
mov eax, ecx
shr ecx, 0x19
and eax, 0x1ffffff
mov dword [esp + 0x74], eax
imul eax, ecx, 0x13
add eax, esi
mov dword [esp + 0x50], eax
lea eax, [esp + 0x134]
push eax
push eax
call fcn.00446ed0
lea eax, [esp + 0x58]
push eax
push eax
call fcn.00446ed0
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x148]
push eax
lea eax, [esp + 0x180]
push eax
call fcn.00444b20
mov ecx, dword [esp + 0x150]
sub ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x154]
add ecx, 0x7ffffda
add edx, 0x3fffffe
mov eax, ecx
shr eax, 0x1a
sub eax, dword [esp + 0x70]
add eax, edx
mov edx, dword [esp + 0x158]
mov esi, eax
add edx, 0x7fffffe
shr eax, 0x19
and esi, 0x1ffffff
sub eax, dword [esp + 0x74]
add eax, edx
mov dword [esp + 0x70], esi
mov edx, dword [esp + 0x15c]
mov edi, eax
shr eax, 0x1a
add edx, 0x3fffffe
sub eax, dword [esp + 0x78]
and edi, 0x3ffffff
add eax, edx
mov dword [esp + 0x74], edi
mov edx, eax
shr eax, 0x19
sub eax, dword [esp + 0x7c]
and edx, 0x1ffffff
mov dword [esp + 0x17c], edx
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x160]
add edx, 0x7fffffe
add eax, edx
mov edx, eax
and edx, 0x3ffffff
shr eax, 0x1a
mov dword [esp + 0x44], edx
mov dword [esp + 0x7c], edx
sub eax, dword [esp + 0x80]
and ecx, 0x3ffffff
mov edx, dword [esp + 0x164]
add edx, 0x3fffffe
add eax, edx
mov edx, eax
shr eax, 0x19
sub eax, dword [esp + 0x84]
and edx, 0x1ffffff
mov dword [esp + 0x68], edx
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x168]
add edx, 0x7fffffe
add eax, edx
mov edx, eax
shr eax, 0x1a
sub eax, dword [esp + 0x88]
and edx, 0x3ffffff
mov dword [esp + 0x4c], edx
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x16c]
add edx, 0x3fffffe
add eax, edx
mov edx, eax
shr eax, 0x19
sub eax, dword [esp + 0x8c]
and edx, 0x1ffffff
mov dword [esp + 0x60], edx
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x170]
add edx, 0x7fffffe
add eax, edx
mov edx, eax
shr eax, 0x1a
sub eax, dword [esp + 0x90]
and edx, 0x3ffffff
mov dword [esp + 0xc4], edx
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x174]
add edx, 0x3fffffe
add eax, edx
mov edx, eax
shr eax, 0x19
imul eax, eax, 0x13
and edx, 0x1ffffff
mov dword [esp + 0xc0], edx
mov dword [esp + 0x90], edx
add eax, ecx
mov ecx, 0x1db41
mov dword [esp + 0x6c], eax
mul ecx
xor ecx, ecx
mov dword [esp + 0xac], eax
shrd eax, edx, 0x1a
mov edx, 0x1db41
mov dword [esp + 0x34], eax
mov eax, esi
mov esi, dword [esp + 0x34]
mul edx
add esi, eax
mov eax, edi
mov edi, 0x1db41
mov dword [esp + 0x34], esi
adc ecx, edx
mul edi
shrd esi, ecx, 0x19
xor ecx, ecx
add esi, eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0xa8], esi
adc ecx, edx
mul edi
shrd esi, ecx, 0x1a
xor ecx, ecx
add esi, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x17c], esi
adc ecx, edx
shrd esi, ecx, 0x19
xor ecx, ecx
mul edi
add esi, eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x44], esi
adc ecx, edx
mul edi
shrd esi, ecx, 0x1a
xor ecx, ecx
add esi, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x68], esi
adc ecx, edx
mul edi
shrd esi, ecx, 0x19
xor ecx, ecx
add esi, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x4c], esi
adc ecx, edx
mul edi
shrd esi, ecx, 0x1a
xor ecx, ecx
add esi, eax
mov eax, dword [esp + 0xc4]
mov edi, esi
mov dword [esp + 0x60], esi
adc ecx, edx
mov edx, 0x1db41
mul edx
shrd edi, ecx, 0x19
xor ecx, ecx
add edi, eax
mov eax, dword [esp + 0xc0]
mov esi, edi
adc ecx, edx
mov edx, 0x1db41
mul edx
shrd esi, ecx, 0x1a
xor ecx, ecx
add esi, eax
mov eax, esi
adc ecx, edx
and edi, 0x3ffffff
shrd eax, ecx, 0x19
mov ecx, dword [esp + 0xac]
and esi, 0x1ffffff
imul eax, eax, 0x13
and ecx, 0x3ffffff
add edi, dword [esp + 0x170]
mov dword [esp + 0x1ec], edi
add eax, dword [esp + 0x150]
add ecx, eax
mov eax, dword [esp + 0x34]
and eax, 0x1ffffff
mov dword [esp + 0x1cc], ecx
add eax, dword [esp + 0x154]
mov dword [esp + 0x1d0], eax
mov eax, dword [esp + 0xa8]
and eax, 0x3ffffff
add eax, dword [esp + 0x158]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x17c]
and eax, 0x1ffffff
add eax, dword [esp + 0x15c]
mov dword [esp + 0x1d8], eax
mov eax, dword [esp + 0x44]
and eax, 0x3ffffff
add eax, dword [esp + 0x160]
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x68]
and eax, 0x1ffffff
add eax, dword [esp + 0x164]
mov dword [esp + 0x1e0], eax
mov eax, dword [esp + 0x4c]
and eax, 0x3ffffff
add eax, dword [esp + 0x168]
mov dword [esp + 0x1e4], eax
mov eax, dword [esp + 0x60]
and eax, 0x1ffffff
add eax, dword [esp + 0x16c]
add esi, dword [esp + 0x174]
mov dword [esp + 0x1e8], eax
lea eax, [esp + 0x1cc]
mov dword [esp + 0x1f0], esi
push eax
lea eax, [esp + 0x70]
push eax
push eax
call fcn.00444b20
add esp, 0x28
sub dword [esp + 0x15c], 1
je 0x446c3e
mov eax, dword [esp + 0x74]
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x170]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x18c]
mov ecx, dword [esp + 0x16c]
mov esi, dword [esp + 0x168]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x88], eax
mov dword [esp + 0x14], edx
jmp 0x4465c0
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x224]
push eax
call fcn.00446ed0
push 2
lea eax, [esp + 0x22c]
push eax
lea eax, [esp + 0x1f0]
push eax
call fcn.00447390
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x1f8]
push eax
lea eax, [esp + 0xcc]
push eax
call fcn.00444b20
lea eax, [esp + 0x240]
push eax
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x248]
push eax
call fcn.00444b20
lea eax, [esp + 0x24c]
push eax
lea eax, [esp + 0x210]
push eax
call fcn.00446ed0
lea eax, [esp + 0xe4]
push eax
lea eax, [esp + 0x218]
push eax
lea eax, [esp + 0xec]
push eax
call fcn.00444b20
add esp, 0x40
lea eax, [esp + 0xb0]
push 5
push eax
lea eax, [esp + 0x1b8]
push eax
call fcn.00447390
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x1c0]
push eax
lea eax, [esp + 0xc4]
push eax
call fcn.00444b20
push 0xa
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0x1d0]
push eax
call fcn.00447390
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x1d8]
push eax
lea eax, [esp + 0x20c]
push eax
call fcn.00444b20
push 0x14
lea eax, [esp + 0x214]
push eax
lea eax, [esp + 0x1e8]
push eax
call fcn.00447390
lea eax, [esp + 0x21c]
push eax
lea eax, [esp + 0x1f0]
push eax
push eax
call fcn.00444b20
add esp, 0x48
lea eax, [esp + 0x1b0]
push 0xa
push eax
push eax
call fcn.00447390
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x1c0]
push eax
lea eax, [esp + 0xc4]
push eax
call fcn.00444b20
push 0x32
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0x1d0]
push eax
call fcn.00447390
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x1d8]
push eax
lea eax, [esp + 0x20c]
push eax
call fcn.00444b20
push 0x64
lea eax, [esp + 0x214]
push eax
lea eax, [esp + 0x1e8]
push eax
call fcn.00447390
lea eax, [esp + 0x21c]
push eax
lea eax, [esp + 0x1f0]
push eax
push eax
call fcn.00444b20
add esp, 0x48
lea eax, [esp + 0x1b0]
push 0x32
push eax
push eax
call fcn.00447390
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x1c0]
push eax
lea eax, [esp + 0xc4]
push eax
call fcn.00444b20
lea eax, [esp + 0xc8]
push 5
push eax
push eax
call fcn.00447390
lea eax, [esp + 0x244]
push eax
lea eax, [esp + 0xd8]
push eax
lea eax, [esp + 0x2a4]
push eax
call fcn.00444b20
lea eax, [esp + 0x2a8]
push eax
lea eax, [esp + 0x19c]
push eax
lea eax, [esp + 0x88]
push eax
call fcn.00444b20
lea eax, [esp + 0x8c]
push eax
push dword [esp + 0x25c]
call fcn.004446f0
mov edx, dword [esp + 0x314]
lea esi, [esp + 0x2e4]
mov eax, dword [esp + 0x30c]
add esp, 0x44
mov ecx, dword [esp + 0x2cc]
cmp edx, esi
jne 0x446eb5
cmp eax, ecx
mov edi, edx
cmovb ecx, eax
xor al, al
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x2dc]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.0046157d
mov esp, ebp
pop ebp
ret