Function at 0x416af0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x684
lea eax, [ebp - 0x22c]
mov dword [esp - 0x38], ebx
sub esp, 4
mov dword [esp], 0x4de1022a
add dword [esp], 0x3cc37b6
add dword [esp], 0x1bca1d8e
mov dword [esp - 0x24], 0xd110eab
sub dword [esp], 0x5c288224
xor dword [esp], 0x330d650a
sub dword [esp], 0x2243af3c
push eax
mov edi, edi
mov eax, dword [0x4baa80]
xor eax, dword [0x4ba958]
call eax
test eax, eax
mov dword [esp - 0x1c], 0x2ebcca6e
je 0x417246
nop
mov dword [esp - 4], 0x499d472e
mov dword [esp - 0x14], ecx
add dword [esp - 4], 0x370c4e
add dword [esp - 4], 0x28c5bebf
xor dword [esp - 4], 0x2b7233f9
mov dword [esp - 0x14], ebp
sub dword [esp - 4], 0x59e821ae
sub esp, 4
mov dword [ebp - 0x1c], 0x72c7a84a
sub dword [ebp - 0x1c], 0xb0c1a90
mov ebx, ebx
xor dword [ebp - 0x1c], 0x69fbbb5c
add dword [ebp - 0x1c], 0x6556f291
xor dword [ebp - 0x1c], 0x1a43ff2
mov dword [esp - 0x2c], 0x167e54b2
sub dword [ebp - 0x1c], 0x5c9e89d2
xor dword [ebp - 0x1c], 0x398f8af
mov dword [ebp - 0x18], 0x3303195c
sub dword [ebp - 0x18], 0xbfffcb2
mov dword [esp - 0x40], 0x4c59467b
add dword [ebp - 0x18], 0x4a8fea11
sub dword [ebp - 0x18], 0xfa46c9b
sub dword [ebp - 0x18], 0x51e458fa
mov dword [esp - 0xc], edi
mov word [ebp - 0x14], 0x37b0
xor word [ebp - 0x14], 0x719b
xor word [ebp - 0x14], 0x7503
mov ebx, ebx
add word [ebp - 0x14], 0x2172
xor word [ebp - 0x14], 0x2cb2
mov dword [ebp - 8], 0x4f57bad5
mov dword [esp - 0x30], 0x961787a
xor dword [ebp - 8], 0x5e07d9cc
add dword [ebp - 8], 0x4d952e7c
sub dword [ebp - 8], 0x42d29936
xchg esp, esp
sub dword [ebp - 8], 0x23c01c4
xor dword [ebp - 8], 0x57fd58d2
sub dword [ebp - 8], 0x4e2bae3f
call fcn.0048b720
mov dword [esp - 0x20], 0x418dabad
add esp, 4
mov dword [ebp - 0xc], eax
xor edx, edx
push edi
mov dword [esp - 0x20], 0x2183590c
movsx cx, byte [ebp + edx - 0x1c]
mov word [eax + edx*2], cx
inc edx
mov edi, dword [ebp - 8]
mov dword [esp - 0x2c], esp
cmp edx, edi
jb 0x416c6f
cmp edi, 2
mov dword [esp - 0x40], 0x3c472d00
lea eax, [ebp - 0xc]
pushf
mov edx, 0xc03aae4
mov ebx, ebx
add edx, 0x2278036e
xor edx, 0x336ea84d
add edx, 0x4ff30b3f
xchg ecx, ecx
xor edx, 0x6d08115c
popf
cmova eax, dword [ebp - 0xc]
mov dword [esp - 0x2c], esp
xor ecx, ecx
mov dword [ebp - 4], eax
lea eax, [edi + 1]
mov ecx, ecx
mul edx
push ebx
push esi
seto cl
xchg ebp, ebp
neg ecx
or ecx, eax
push ecx
mov esp, esp
call fcn.0048b720
add esp, 4
mov esi, eax
mov edx, edx
xor ebx, ebx
mov dword [ebp - 0x10], esi
test edi, edi
mov dword [esp - 0x1c], esp
je 0x416d4e
sub dword [ebp - 4], esi
mov edx, esi
xchg edx, edx
mov esi, dword [ebp - 4]
mov ecx, ebx
lea edx, [edx + 2]
mov dword [esp - 0x30], ebp
and ecx, 3
mov eax, 0x49007eb2
sub eax, 0x14b50d9c
sub eax, 0x2a1f733b
mov dword [esp - 0x1c], 0x6e03a52d
add eax, 0x5d76b926
add eax, 0xbdb6d3f
shl ecx, 3
inc ebx
mov dword [esp - 0x18], ecx
sar eax, cl
cbw
xor ax, word [esi + edx - 2]
mov dword [esp - 0x40], esi
mov word [edx - 2], ax
cmp ebx, edi
jb 0x416cfd
mov dword [esp - 0x44], edi
mov esi, dword [ebp - 0x10]
xor eax, eax
push esi
mov dword [esp - 0xc], 0xb67d3cc
mov word [esi + edi*2], ax
lea eax, [ebp - 0x22c]
nop
mov dword [esp - 4], 0x7d9840f7
mov dword [esp - 0x44], 0x22dae96c
sub dword [esp - 4], 0x246639ec
add dword [esp - 4], 0xc37848
sub dword [esp - 4], 0x138357c1
sub dword [esp - 4], 0x2229d5d8
mov dword [esp - 0xc], ebx
xor dword [esp - 4], 0x21685d9e
sub dword [esp - 4], 0x5200b20
sub esp, 4
mov edx, edx
push eax
call fcn.0048bf60
push esi
call fcn.0048b6f0
xchg ebx, ebx
add esp, 0x10
cmp edi, 2
jbe 0x416dd2
mov dword [esp - 0x30], ecx
push dword [ebp - 0xc]
call fcn.0048b6f0
add esp, 4
lea edx, [ebp - 0x22c]
xchg esp, esp
mov dword [ebp - 0x24], 0x9880867
add dword [ebp - 0x24], 0x6611cd73
sub dword [ebp - 0x24], 0x287572eb
sub dword [ebp - 0x24], 0x45debbf7
xchg ecx, ecx
add dword [ebp - 0x24], 0x920611
sub dword [ebp - 0x24], 0x1d7ad09
lea ecx, [edx + 2]
jmp 0x416e0e
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x416e0e
mov dword [esp - 0x30], ebx
sub edx, ecx
lea esi, [ebp - 0x24]
sar edx, 1
mov dword [ebp - 0x20], edx
mov dword [esp - 0x14], edi
cmp edx, 2
jbe 0x416e87
xor ecx, ecx
mov eax, edx
mov dword [esp - 0xc], 0x3928b119
mov edx, 0x56854cd3
xor edx, 0x343ed084
xor edx, 0x2a12d07a
add edx, 0x106e3202
mov edx, edx
sub edx, 0xad510e8
sub edx, 0x4e426d45
mul edx
seto cl
xchg ecx, ecx
neg ecx
or ecx, eax
push ecx
call fcn.0048b720
xchg ebx, ebx
mov edx, dword [ebp - 0x20]
mov esi, eax
add esp, 4
mov dword [esp - 0xc], 0x79146958
mov dword [ebp - 0x24], esi
xor edi, edi
test edx, edx
je 0x416eef
mov dword [esp - 0x30], 0x7e1cecde
lea edx, [ebp - 0x22c]
sub edx, esi
jmp 0x416ea2
mov ecx, edi
lea esi, [esi + 2]
mov dword [esp - 0x2c], ebx
and ecx, 3
mov eax, 0x15de1fcc
xor eax, 0x5399b4a4
mov dword [esp - 0x1c], esi
sub eax, 0xde48c9b
sub eax, 0x36404d4b
add eax, 0x715b52be
shl ecx, 3
mov dword [esp - 0x30], edi
inc edi
sar eax, cl
cbw
xor ax, word [edx + esi - 2]
mov dword [esp - 0x14], 0x4cfebef1
mov word [esi - 2], ax
cmp edi, dword [ebp - 0x20]
jb 0x416ea2
xchg edx, edx
mov dword [ebp - 4], 0x72781267
xor dword [ebp - 4], 0x649860d2
xor dword [ebp - 4], 0x3e2f7f48
mov dword [esp - 0x3c], ecx
xor dword [ebp - 4], 0x1092b986
xor dword [ebp - 4], 0x2d53be11
mov eax, dword [ebp - 4]
nop
mov dword [esp - 0x18], 0x30fa5646
mov dword [esp - 4], 0x3d553240
sub dword [esp - 4], 0x32951ced
add dword [esp - 4], 0x65c32e34
mov edx, edx
sub dword [esp - 4], 0x3b5f30f7
xor dword [esp - 4], 0x6994f67b
xor dword [esp - 4], 0x5cb0e4e3
sub esp, 4
xchg edi, edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], 0x18b89e5d
xor dword [ebp - 8], 0x172da123
mov esi, esi
xor dword [ebp - 8], 0x7afe0ae9
xor dword [ebp - 8], 0x3894e601
sub dword [ebp - 8], 0x24ed835d
xor dword [ebp - 8], 0x2267d1de
mov edi, edi
sub dword [ebp - 8], 0xb7581e3
call fcn.0048b720
xor edx, edx
xchg ecx, ecx
mov dword [ebp - 0xc], eax
add esp, 4
cmp dword [ebp - 8], edx
xchg esp, esp
jbe 0x416fbe
jmp 0x416fac
movsx cx, byte [ebp + edx - 0x10]
mov word [eax + edx*2], cx
inc edx
xchg ebx, ebx
cmp edx, dword [ebp - 8]
jb 0x416fac
lea eax, [ebp - 0xc]
push eax
mov esi, esi
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
mov ebp, ebp
push eax
call fcn.00480d90
mov ebx, eax
add esp, 0xc
mov edi, edi
mov eax, dword [ebx + 4]
mov dword [ebp - 4], eax
cmp eax, 2
jbe 0x416fe9
mov esi, esi
mov ebx, dword [ebx]
xor ecx, ecx
inc eax
mov edx, 0xc656410
xchg esi, esi
add edx, 0x31d05fa6
sub edx, 0x22b54adf
add edx, 0x1e97088b
mov dword [esp - 0x34], 0x5f993ade
xor edx, 0x491bc93f
sub edx, 0x730c485b
mul edx
seto cl
xchg ecx, ecx
neg ecx
or ecx, eax
push ecx
call fcn.0048b720
mov dword [esp - 0x28], 0xdffe924
mov esi, eax
add esp, 4
mov eax, dword [ebp - 4]
xor edi, edi
mov dword [esp - 0x14], esp
mov dword [ebp - 0x10], esi
test eax, eax
je 0x4170ab
mov dword [esp - 0x18], 0x5dca12ff
mov edx, esi
sub ebx, esi
mov esi, eax
mov ecx, edi
mov ecx, ecx
lea edx, [edx + 2]
and ecx, 3
mov eax, 0x5a7ee4dd
mov dword [esp - 0x38], esi
xor eax, 0x3a501625
sub eax, 0x5f0707ac
xor eax, 0x3aca0f40
mov edi, edi
add eax, 0x37904034
shl ecx, 3
inc edi
sar eax, cl
xchg esp, esp
cbw
xor ax, word [ebx + edx - 2]
mov word [edx - 2], ax
cmp edi, esi
mov dword [esp - 0xc], 0x47d4c16c
jb 0x417055
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
mov dword [esp - 0x44], 0x3cf7c80d
xor ecx, ecx
mov word [esi + eax*2], cx
lea eax, [ebp - 0x47c]
mov dword [esp - 0x44], 0x612e2655
push eax
mov eax, dword [0x4baa48]
xor eax, dword [0x4ba958]
mov dword [esp - 0x40], esp
push esi
call eax
push esi
mov edi, eax
xchg esp, esp
call fcn.0048b6f0
add esp, 4
cmp dword [ebp - 0x18], 2
pop esi
mov edi, edi
pop ebx
jbe 0x4170f8
push dword [ebp - 0x1c]
mov dword [esp - 0x30], ebp
call fcn.0048b6f0
add esp, 4
cmp dword [ebp - 8], 2
jbe 0x417111
mov dword [esp - 0x14], 0x7d3e316d
push dword [ebp - 0xc]
call fcn.0048b6f0
add esp, 4
cmp dword [ebp - 0x20], 2
mov edi, edi
jbe 0x417128
push dword [ebp - 0x24]
call fcn.0048b6f0
mov dword [esp - 0x40], ecx
add esp, 4
cmp edi, 0xffffffff
je 0x417245
lea esp, [esp]
mov esp, esp
test byte [ebp - 0x47c], 0x10
jne 0x41720c
lea eax, [ebp - 0x22c]
push eax
mov dword [esp - 0x30], ecx
lea eax, [ebp - 0x684]
nop
mov dword [esp - 4], 0x1a2cb937
mov dword [esp - 0xc], ebp
add dword [esp - 4], 0x207e20ef
add dword [esp - 4], 0x3009fbcb
xor dword [esp - 4], 0x5f594822
sub dword [esp - 4], 0x35ed9ccf
mov esp, esp
sub esp, 4
push eax
call fcn.0048c0a0
xchg esi, esi
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x684]
mov dword [esp - 0x2c], 0x38fa09ad
nop
mov dword [esp - 4], 0x5136d344
sub dword [esp - 4], 0x114aae10
sub dword [esp - 4], 0x34aeac70
mov dword [esp - 0x14], ebx
add dword [esp - 4], 0x5f7de061
xor dword [esp - 4], 0x551013bb
xor dword [esp - 4], 0x1ec2bb90
xchg esi, esi
sub dword [esp - 4], 0x2169f00a
sub esp, 4
push eax
mov ebp, ebp
call fcn.0048bf60
add esp, 0x18
lea eax, [ebp - 0x684]
push eax
xchg edx, edx
mov eax, dword [0x4baa10]
xor eax, dword [0x4ba958]
call eax
xchg ecx, ecx
lea eax, [ebp - 0x47c]
push eax
mov eax, dword [0x4baa50]
xor eax, dword [0x4ba958]
mov dword [esp - 0x34], 0x4ed4f830
push edi
call eax
test eax, eax
xchg ebx, ebx
jne 0x41713a
mov eax, dword [0x4baa58]
xor eax, dword [0x4ba958]
mov dword [esp - 0xc], esp
push edi
call eax
pop edi
mov esp, ebp
mov edx, edx
pop ebp
ret