Function at 0x401238
Capabilities:
Encrypt data using chaskey
Hash data using murmur3

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
or eax, edx
call dword [sym.imp.GDI32.DLL_GdiGetBatchLimit]
call fcn.00401118
cmp dword [0x421400], eax
jne 0x401265
mov edx, 0xbf
mov edx, ecx
mov ecx, 0x4d
rcr edx, 0xa
adc dword [ebp - 0x74], 0xd
mov eax, 0xd7
add dword [ebp - 0xc], edx
adc eax, ecx
mov eax, 0x90
adc ecx, eax
adc dword [ebp - 0x78], 0xffffffde
call fcn.00401118
push 0x40
xor eax, edx
or eax, dword [ebp - 0x34]
mov edx, eax
xor ecx, eax
test ecx, edx
je 0x4012a0
sub dword [0x427a80], ecx
adc dword [ebp - 0x50], edx
shr eax, 0xe
sub ecx, edx
cmp ecx, 8
je 0x4012c3
xor dword [0x42a200], edx
mov edx, eax
rol eax, 5
mov eax, 0xe0
add dword [ebp - 0x44], 0xffffffeb
xor dword [ebp - 0x6c], ecx
add edx, ecx
mov ecx, 0xc9
call fcn.00401118
xor eax, ecx
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
call fcn.00401118
mov eax, 0x5d
mov dword [0x432440], edx
mov ecx, 0x7f
add edx, dword [ebp - 0x10]
sbb edx, eax
mov edx, 0x27
or eax, ecx
rcl ecx, 7
add dword [ebp - 0x70], edx
rol eax, 1
sbb dword [ebp - 0x68], 0x22
or ecx, eax
sub dword [ebp - 0x74], 0xffffffdc
adc dword [ebp - 0x64], 0xffffffd0
call fcn.00401118
push 0x1000
add dword [ebp - 0x48], 0x26
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
test eax, ecx
jne 0x40134d
mov eax, 0x55
mov dword [0x4247c0], edx
sbb dword [ebp - 0x34], 0x5e
mov dword [0x42d800], ecx
or dword [0x424dc0], eax
or ecx, edx
mov eax, 0x8e
xor dword [ebp - 0x40], 0xffffffb2
ror edx, 3
adc dword [ebp - 0x30], 0xffffffee
cmp dword [0x422540], ecx
je 0x401360
rcl eax, 5
mov ecx, 0xd6
rol edx, 1
call fcn.00401118
push 0x5000
add dword [ebp - 0x58], ecx
push eax
call dword [sym.imp.GDI32.DLL_GetROP2]
call fcn.00401118
mov dword [0x426fc0], edx
mov dword [0x429800], ecx
mov eax, dword [0x41e000]
rol edx, 0xa
sbb edx, 0x6c
xor dword [ebp - 0x18], 0x3b
adc eax, edx
mov ecx, edx
or ecx, edx
sub dword [ebp - 0x7c], 0x22
mov ecx, 0x42
adc dword [0x424880], edx
rcl eax, 1
or dword [ebp - 0x6c], 0xf
xor ecx, edx
xor dword [0x42e6c0], eax
or dword [ebp - 0x68], eax
mov edx, 0x4c
call fcn.00401118
sub eax, dword [0x432540]
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
call fcn.00401118
push 0
cmp eax, edx
je 0x401408
mov ecx, 0xe1
mov eax, 0x3d
mov dword [0x422380], edx
or eax, ecx
sbb dword [0x423e40], edx
rol ecx, 7
xor ecx, eax
sbb dword [ebp - 0x74], 0x4e
sub ecx, 0x100
mov eax, 0xc8
or dword [ebp - 0x38], 0xffffffc2
sbb ecx, 0x9c
xor dword [ebp - 0x70], 0xffffffef
rcr eax, 9
xor dword [ebp - 0x18], 0x41
mov eax, 0xbf
shl edx, 1
sub dword [ebp - 0x30], 0xffffffb9
shl ecx, 0xe
mov ecx, 0x2f
xor edx, eax
cmp dword [0x423a80], edx
je 0x401451
sub dword [ebp - 0x54], 0xf
xor dword [ebp - 0x38], eax
mov edx, 0x8e
mov edx, 0xac
mov eax, ecx
rol edx, 4
cmp dword [0x420d80], edx
je 0x401479
xor dword [0x426fc0], ecx
or dword [ebp - 0x50], 0x23
shr edx, 9
mov ecx, eax
rol ecx, 2
rcr edx, 0xe
mov edx, 0xb4
xor dword [ebp - 0x4c], 0xffffff87
or edx, ecx
sub edx, ecx
adc ecx, edx
shl ecx, 6
mov edx, 0x2f
call fcn.00401118
rol edx, 9
call dword [sym.imp.GDI32.DLL_GdiGetBatchLimit]
call fcn.00401118
call dword [sym.imp.KERNEL32.DLL_VirtualAlloc]
mov dword [0x404cf8], eax
cmp dword [0x425e00], eax
jne 0x4014c8
mov ecx, 0xfe
shl ecx, 1
mov eax, dword [0x4217c0]
mov edx, 9
add edx, ecx
shl edx, 3
add dword [0x4258c0], edx
mov eax, edx
adc eax, ecx
sub dword [ebp - 0x70], 0xffffff82
mov edx, 0x50
adc dword [ebp - 0x28], ecx
call fcn.00401118
shl ecx, 9
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
call fcn.00401118
mov esi, 0x4043a0
mov eax, 0x67
mov ecx, 0xfe
mov dword [0x42a580], edx
rol edx, 0xf
add dword [ebp - 0x7c], ecx
adc dword [ebp - 0x50], 0x3e
mov ebx, 0x37
rcr ebx, 1
or eax, dword [0x423740]
mov ebx, eax
cmp dword [0x42a740], ebx
je 0x401538
sbb dword [ebp - 0x3c], 0xffffffb4
or ecx, edx
add edx, eax
sbb dword [0x421380], ebx
rcl edx, 0xa
sub edx, eax
sbb dword [ebp - 0x70], ebx
cmp dword [0x430140], ebx
jne 0x40155e
rol eax, 1
add dword [ebp - 0x18], 0x39
sbb dword [ebp - 0x5c], 0xffffffa5
add ecx, 0xb6
sbb dword [ebp - 0x64], 0x7d
mov ebx, 1
add ebx, eax
xor ecx, ebx
call fcn.00401118
rcr edx, 4
sub edx, ebx
sbb ecx, ebx
adc ecx, dword [ebp - 0x3c]
add eax, edx
add dword [ebp - 0x40], ecx
sub edx, dword [0x426e40]
add dword [ebp - 0x1c], 0x73
or dword [ebp - 0x70], edx
or eax, edx
cmp dword [0x422880], edx
jne 0x401599
or dword [ebp - 0x4c], 0xffffffe0
sub eax, dword [ebp - 0xc]
sub ecx, 0x2b
add ebx, ecx
xor dword [ebp - 0x40], 0x38
sbb ebx, 0x16
adc ecx, 0x18
rcl ebx, 4
or ebx, dword [0x431140]
add ebx, dword [ebp - 0x24]
rcl ecx, 2
xor eax, edx
mov ecx, 0x75
call fcn.00401118
xor ecx, dword [0x41f7c0]
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
call fcn.00401118
mov ecx, 0xde
sbb dword [0x41eb40], ecx
rcr ecx, 0xa
sbb dword [ebp - 0x2c], ecx
mov edx, 0xa0
mov eax, dword [0x42d480]
xor ecx, 0x94
test ecx, ebx
jne 0x401610
mov dword [0x41fa00], ebx
shr eax, 0xe
add dword [ebp - 0x58], 0x54
mov edx, 0xcc
shr ecx, 5
mov eax, 0xd0
adc edx, ebx
xor dword [ebp - 0x4c], 0xfffffff1
shl ebx, 8
mov ebx, 0x9d
sub dword [0x421800], ecx
xor dword [ebp - 0x28], 0x66
sbb ebx, edx
shl eax, 0xd
call fcn.00401118
mov edi, dword [0x404cf8]
add ebx, eax
call dword [sym.imp.GDI32.DLL_GdiGetBatchLimit]
call fcn.00401118
test eax, edx
jne 0x401662
mov ecx, 0xb
mov eax, 0x39
mov ebx, 0x8c
xor eax, edx
add dword [ebp - 0x30], 0xc
mov dword [0x42a700], edx
adc dword [ebp - 0x20], 0x68
cmp dword [0x426800], edx
je 0x40167e
mov ecx, 0x60
or dword [0x4230c0], edx
sbb ebx, 0xee
shr edx, 3
or eax, ecx
shl edx, 5
or eax, ebx
shr edx, 1
xor dword [ebp - 0x4c], 0x2f
mov eax, 0xa1
or dword [ebp - 0x40], 6
call fcn.00401118
movsd dword es:[edi], dword [esi]
xor dword [edi - 4], 0x52f6ca23
cmp dword [0x426980], ebx
jne 0x4016b4
adc dword [ebp - 0x5c], edx
rcl eax, 6
sub dword [ebp - 0xc], 0xffffff9a
mov eax, 0xa4
sbb dword [ebp - 0x1c], 0xffffffc3
mov eax, 0xce
xor dword [ebp - 0x5c], edx
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
call fcn.00401118
cmp esi, 0x404b60
jne 0x401632
mov eax, 0xfc
mov dword [0x41f900], ebx
adc ebx, ecx
xor dword [ebp - 0x30], 0xffffffa0
mov dword [0x4323c0], ecx
sbb eax, edx
cmp dword [0x41f900], eax
jne 0x401726
or dword [ebp - 8], ebx
mov dword [0x41fc00], edx
or eax, ecx
ror ecx, 8
sub edx, dword [0x4232c0]
xor eax, 0xac
xor dword [0x434400], ecx
rcl edx, 4
sbb eax, ebx
mov eax, 3
xor dword [ebp - 0x44], 0xffffffcb
xor ebx, ecx
or dword [ebp - 0x70], 0xffffffcd
sub eax, 0x76
call fcn.00401118
sbb dword [ebp - 0x28], edx
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
call fcn.00401118
call dword [0x404cf8]
mov eax, 0xd4
mov dword [0x425940], ebx
mov dword [0x424fc0], edx
add dword [ebp - 0x70], ebx
mov ecx, 0x57
or dword [0x430000], ecx
add byte [eax], al
inc ebx
add cl, al
jecxz 0x401775
sub ebx, edx
sub ecx, dword [ebp - 0x1c]
or ebx, edx
rcl edx, 0xb
sub edx, 0x9c
sub dword [ebp - 0x10], 0xffffffff
cmp dword [0x421a00], edx
je 0x4017ae
add eax, edx
xor dword [ebp - 0x3c], 0xffffffbc
adc ebx, dword [ebp - 0x6c]
mov edx, 0xeb
shr ecx, 0xf
mov eax, 0xde
rcl ecx, 6
sub dword [ebp - 0xc], 0xc
add dword [ebp - 0x54], 0xffffffc1
add dword [ebp - 0x28], ebx
call fcn.00401118
rol edx, 0xd
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
call fcn.00401118
mov eax, 0xff
sub dword [ebp - 0x20], 0x3a
mov ebx, 0xc6
sub ebx, eax
mov dword [0x41f1c0], ecx
mov ebx, ecx
cmp ebx, 0x36
jne 0x401803
rcl ecx, 0xe
sub ebx, 0xd9
mov edx, 0x45
or ebx, dword [ebp - 0x54]
add eax, edx
xor dword [ebp - 0x2c], 0xffffffd8
add eax, dword [0x425680]
xor ebx, ecx
sub dword [0x42c900], ecx
cmp dword [0x4280c0], ecx
jne 0x401818
add ebx, edx
xor edx, ecx
adc ecx, dword [ebp - 0x4c]
add dword [0x427700], ebx
call fcn.00401118
sub eax, ecx
push dword [0x427040]
push 0x7bd7c00b
call dword [sym.imp.GDI32.DLL_SetLayout]
call fcn.00401118
leave
ret