Function at 0x5415b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x108
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x542700
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.005426e0
mov edx, dword [0x8509ec]
mov ecx, dword [0x8509d4]
mov esi, 0xffff35d7
sub esi, eax
mov dword [ebp - 0x68], esi
sub ecx, esi
add ecx, edx
call dword [0x834360]
call ecx
mov dword [ebp - 0x20], eax
mov ecx, 0x889c18
call fcn.00581710
mov dword [0x889c24], 0
mov dword [0x889c28], 0
mov dword [0x889c2c], 0
mov dword [ebp - 0x10], 3
call dword [0x834298]
nop
mov dword [0x889c38], eax
mov dword [0x889c3c], edx
mov ecx, dword [ebp - 0x20]
mov eax, ecx
xor eax, 0xcd4ee47a
mov esi, ecx
xor esi, 0xcd4ee47e
mov edx, ecx
xor edx, 0xcd4ee465
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], esi
mov dword [ebp + esi - 0x9c], edx
mov edx, ecx
xor edx, 0xcd4ee466
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x80], edx
mov dword [ebp + eax - 0x9c], edx
movzx eax, byte [0x85090d]
xor cl, 0xf6
mov byte [ebp - 0x24], cl
cmp al, cl
je 0x54174f
mov eax, dword [ebp - 0x20]
mov ecx, eax
xor cl, 0x36
mov edx, eax
xor dl, 0xba
nop word [eax + eax]
mov eax, ecx
lock cmpxchg byte [0x85090d], dl
je 0x5416c6
cmp al, byte [ebp - 0x24]
jne 0x5416b0
jmp 0x54174f
mov eax, dword [ebp - 0x20]
mov ecx, eax
xor ecx, 0x1798ed6d
mov dword [ebp - 0x34], ecx
mov ecx, eax
xor cl, 0x26
mov edx, eax
xor dl, 0xd9
mov esi, eax
xor esi, 0xb65a77eb
xor eax, 0xcd4ee467
mov dword [ebp - 0x84], eax
xor ebx, ebx
mov byte [ebp - 0x28], cl
xor dl, cl
mov byte [ebp - 0x54], dl
mov ecx, ebx
mov edi, dword [ebp - 0x2c]
nop
mov eax, dword [ebp - 0x34]
add eax, ebx
xor edx, edx
div edi
not edx
movzx eax, byte [edi + edx + 0x7d4c50]
and al, byte [ebp - 0x54]
xor al, byte [ebp - 0x28]
xor byte [ebx + 0x850900], al
xor ecx, esi
and ebx, esi
lea eax, [ecx + ebx*2]
xor eax, 1
and ecx, 1
add ecx, ecx
sub ecx, esi
add ecx, eax
cmp ecx, dword [ebp - 0x84]
mov ebx, ecx
jl 0x541700
nop
movzx eax, byte [ebp - 0x24]
xchg byte [0x85090d], al
mov dword [ebp - 0x10], 0xffffffff
nop
mov eax, dword [0x8509e8]
mov ecx, dword [0x8509d8]
sub ecx, dword [ebp - 0x68]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0x834360]
lea esi, [ebp - 0x9c]
mov edi, dword [ebp - 0x80]
push edi
push 0x850900
push esi
call ecx
add esp, 0xc
mov byte [ebp + edi - 0x9c], 0
mov dword [ebp - 0x10], 6
lea eax, [ebp - 0xf4]
push esi
push eax
call fcn.0057ffd0
add esp, 8
mov ecx, 0x889c18
lea esi, [ebp - 0xf4]
push esi
call fcn.00581840
mov ecx, esi
call fcn.00581730
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax - 0x9c]
cmp eax, dword [ebp - 0x2c]
jbe 0x54185c
nop
mov ecx, dword [ebp - 0x9c]
mov edx, eax
xor edx, 1
mov esi, eax
and esi, 1
lea edx, [edx + esi*2]
mov ebx, dword [ebp - 0x20]
mov esi, ebx
xor esi, 0xcd4eeb95
cmp edx, esi
jbe 0x541851
mov esi, ebx
xor esi, 0x110b16c6
mov edx, ebx
xor edx, 0xeef4e939
mov edi, edx
xor edi, esi
and edi, ecx
xor edi, esi
or edx, ecx
xor edx, ebx
add edx, edx
xor edx, 0xdde9d272
mov dword [ebp - 0x24], ecx
mov ecx, edx
xor ecx, edi
mov dword [ebp - 0x34], ecx
and edx, edi
mov edi, ebx
xor edi, 0x32b11b96
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx + edi]
sub edi, esi
add edi, dword [ebp - 0x34]
lea edx, [edi + edx*2]
sub edx, ecx
mov esi, ebx
xor esi, 0xcd4ee44a
cmp edx, esi
jae 0x54248b
xor ebx, 0xcd4ee44e
add eax, ebx
mov edx, eax
nop
push edx
push ecx
call fcn.0071996d
add esp, 8
nop
mov dword [ebp - 0x10], 3
mov ecx, 0x889c18
call fcn.00581900
nop
mov ecx, dword [0x8509fc]
mov edi, dword [ebp - 0x20]
xor ecx, edi
cmp ecx, 0x6809c2c3
mov ecx, dword [0x8509f4]
jne 0x5418ca
mov edx, edi
xor edx, 0x32b11b96
mov edx, dword [ecx + edx*4]
mov esi, edx
shl esi, cl
xor ebx, ebx
test cl, 0x20
cmove ebx, esi
mov ecx, edx
sub ecx, ebx
imul ecx, ebx
add ecx, edx
mov dword [ebp - 0x84], ecx
mov ecx, dword [0x7d4c40]
mov dword [ebp - 0x54], ecx
mov edx, dword [0x8509f8]
mov ecx, edi
xor ecx, 0x12b11b93
lea ecx, [edx + ecx*8]
jmp 0x5418e4
nop
add ecx, dword [ecx]
mov dword [ebp - 0x84], ecx
mov ecx, dword [0x7d4c40]
mov dword [ebp - 0x54], ecx
mov ecx, dword [0x8509f8]
mov edx, ecx
nop
add edx, dword [ecx]
mov dword [ebp - 0x80], edx
test al, al
je 0x541cd4
mov ecx, 0x889c18
call fcn.005818f0
nop
mov eax, dword [ebp - 0x6c]
mov dword [ebp + eax - 0x9c], 0
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
mov dword [ebp + ecx - 0x9c], eax
mov byte [ebp - 0x9c], 0
movzx eax, byte [0x850937]
mov ecx, dword [ebp - 0x20]
xor cl, 0x8a
mov byte [ebp - 0x24], cl
cmp al, cl
je 0x5419c9
mov eax, dword [ebp - 0x20]
mov ecx, eax
xor cl, 0x57
mov edx, eax
xor dl, 0xed
nop word cs:[eax + eax]
mov eax, ecx
lock cmpxchg byte [0x850937], dl
je 0x541963
cmp al, byte [ebp - 0x24]
jne 0x541950
jmp 0x5419c9
nop
mov eax, dword [ebp - 0x20]
mov esi, eax
xor esi, 0x6bef7004
mov edi, eax
xor edi, 0xcd4ee442
xor eax, 0xcd4ee44d
cmp eax, 2
mov ebx, 1
cmovge ebx, eax
xor ecx, ecx
nop dword [eax]
lea eax, [esi + ecx]
xor edx, edx
div edi
not edx
movzx eax, byte [ecx + 0x850910]
xor al, byte [edi + edx + 0x7d4c60]
xor al, byte [ebp - 0x20]
xor al, 0xc
mov byte [ecx + 0x850910], al
inc ecx
cmp ebx, ecx
jne 0x541990
nop
movzx eax, byte [ebp - 0x24]
xchg byte [0x850937], al
mov dword [ebp - 0x10], 3
nop
mov eax, dword [ebp - 0x20]
xor eax, 0xcd4ee44c
mov dword [ebp - 0x10], 3
sub esp, 0xc
movzx ecx, byte [ebp - 0xf4]
mov byte [esp + 4], cl
mov dword [esp], eax
mov dword [esp + 8], 0x850910
lea ecx, [ebp - 0x9c]
call fcn.0045afa0
nop
mov dword [ebp - 0x10], 5
mov ecx, 0x889c18
lea eax, [ebp - 0x9c]
push eax
call fcn.0057feb0
nop
mov dword [0x889c24], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax - 0x9c]
cmp eax, dword [ebp - 0x2c]
jbe 0x541a85
nop
mov ecx, dword [ebp - 0x9c]
lea esi, [eax + 1]
mov ebx, dword [ebp - 0x20]
mov edx, ebx
xor edx, 0xcd4eeb95
cmp esi, edx
jbe 0x541a7a
mov esi, ebx
xor esi, 0x32b11b96
mov edx, dword [ecx + esi]
mov edi, esi
xor edi, ecx
or esi, ecx
xor esi, edi
lea ecx, [edi + esi*2]
sub ecx, edx
mov esi, ebx
xor esi, 0xcd4ee44a
cmp ecx, esi
jae 0x542498
mov ecx, ebx
xor ecx, 0xcd4ee44e
add eax, ecx
mov esi, eax
mov ecx, edx
nop
push esi
push ecx
call fcn.0071996d
add esp, 8
nop
mov dword [0x850a00], 0x720ce04b
mov eax, dword [ebp - 0x6c]
mov dword [ebp + eax - 0x9c], 0
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
mov dword [ebp + ecx - 0x9c], eax
mov byte [ebp - 0x9c], 0
movzx eax, byte [0x850969]
mov ecx, dword [ebp - 0x20]
xor cl, 8
mov byte [ebp - 0x24], cl
cmp al, cl
je 0x541b79
mov eax, dword [ebp - 0x20]
mov ecx, eax
xor cl, 0x4c
mov edx, eax
xor dl, 0x4a
nop word [eax + eax]
mov eax, ecx
lock cmpxchg byte [0x850969], dl
je 0x541af6
cmp al, byte [ebp - 0x24]
jne 0x541ae0
jmp 0x541b79
nop
mov ecx, dword [ebp - 0x20]
mov eax, ecx
xor eax, 0x1560629
mov dword [ebp - 0x34], eax
mov edi, ecx
xor edi, 0xcd4ee440
mov eax, ecx
xor al, 0xa
mov byte [ebp - 0x28], al
mov eax, ecx
xor eax, 0xcd4ee443
cmp eax, 2
mov ebx, 1
cmovge ebx, eax
xor esi, esi
nop word [eax + eax]
nop
mov eax, dword [ebp - 0x34]
add eax, esi
xor edx, edx
div edi
mov eax, edx
xor eax, 0xfffffffe
add eax, edi
add edx, edx
and edx, 2
sub eax, edx
movzx eax, byte [eax + 0x7d4c91]
mov edx, eax
not dl
and dl, byte [ebp - 0x28]
xor al, cl
xor al, 0xa
or al, dl
xor byte [esi + 0x850940], al
inc esi
cmp ebx, esi
jne 0x541b30
nop
movzx eax, byte [ebp - 0x24]
xchg byte [0x850969], al
mov dword [ebp - 0x10], 3
nop
mov eax, dword [ebp - 0x20]
xor eax, 0xcd4ee442
mov dword [ebp - 0x10], 3
sub esp, 0xc
movzx ecx, byte [ebp - 0xf4]
mov byte [esp + 4], cl
mov dword [esp], eax
mov dword [esp + 8], 0x850940
lea ecx, [ebp - 0x9c]
call fcn.0045afa0
nop
mov dword [ebp - 0x10], 4
mov ecx, 0x889c18
lea eax, [ebp - 0x9c]
push eax
call fcn.0057feb0
nop
mov dword [0x889c28], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + eax - 0x9c]
movzx eax, byte [0x889bde]
mov byte [ebp - 0x45], al
test al, al
jne 0x541bee
nop
cmp ecx, dword [ebp - 0x2c]
jbe 0x541cc3
nop
mov edx, dword [ebp - 0x9c]
mov dword [ebp - 0xc4], ecx
lea eax, [ecx + 1]
mov esi, dword [ebp - 0x20]
mov ecx, esi
xor ecx, 0xcd4eeb95
cmp eax, ecx
jbe 0x541cad
mov eax, esi
xor eax, 0x32b11b96
lea ecx, [edx + eax]
mov edx, dword [edx + eax]
mov dword [ebp - 0xb0], edx
mov eax, edx
neg eax
mov edx, ecx
xor edx, eax
and eax, ecx
lea eax, [edx + eax*2]
mov dword [ebp - 0xc0], eax
mov eax, dword [0x8509f0]
lea ecx, [eax + 1]
mov dword [0x8509f0], ecx
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], ecx
test ecx, eax
je 0x541d4f
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x44], 0
mov ecx, dword [ebp - 0x20]
mov eax, ecx
xor eax, 0xcd4ee44a
cmp dword [ebp - 0xc0], eax
jae 0x5424a5
mov eax, ecx
mov edx, dword [ebp - 0xc4]
xor eax, edx
xor eax, 0xcd4ee44e
not edx
xor ecx, 0x32b11bb1
and ecx, edx
or ecx, eax
not ecx
lea eax, [eax + ecx*2]
jmp 0x541cb3
mov dword [ebp - 0xb0], edx
nop
push eax
push dword [ebp - 0xb0]
call fcn.0071996d
add esp, 8
nop
cmp dword [0x889c24], 0x731020
je 0x542447
nop
mov ecx, dword [0x889c24]
test ecx, ecx
je 0x541d3a
nop
cmp dword [0x889c28], 0
je 0x541d3a
nop
mov dword [ebp - 0x9c], 0x542660
mov eax, dword [ebp - 0x20]
xor eax, 0xcd4ee46e
mov dword [ebp + eax - 0x9c], 0
mov dword [ebp - 0x10], 0xffffffff
call dword [0x834360]
mov dword [ebp - 0x10], 3
push 0x889c2c
lea eax, [ebp - 0x9c]
push eax
push 2
call ecx
test eax, eax
je 0x541d3a
nop
mov dword [0x889c28], 0
nop
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x108
pop esi
pop edi
pop ebx
pop ebp
ret
nop
mov ecx, dword [0x850a00]
xor ecx, esi
mov eax, esi
xor eax, 0x32b11b91
xor edx, edx
cmp ecx, 0xbf420421
cmove eax, edx
mov edx, dword [ebp - 0x80]
mov ecx, dword [edx + eax*4]
cmp dword [ebp - 0x54], 0
jle 0x542426
lea eax, [edx + eax*4]
add eax, ecx
mov dword [ebp - 0x34], eax
mov eax, dword [0x850a04]
xor eax, esi
mov dword [ebp - 0xe8], eax
mov eax, esi
shr eax, 2
mov dword [ebp - 0x78], eax
mov ecx, esi
shl ecx, 0x1e
xor ecx, esi
mov dword [ebp - 0x74], ecx
mov edx, ecx
xor edx, 0xd94ac46
mov dword [ebp - 0x2c], edx
mov ebx, eax
xor ebx, 0x32d435f0
xor ecx, 0x4f201581
mov dword [ebp - 0x28], ecx
xor eax, 0x4c300368
mov dword [ebp - 0x24], eax
mov eax, esi
lea edx, [esi*8]
mov dword [ebp - 0x64], edx
xor edx, 0xfa1fa3ff
mov ecx, esi
xor ecx, 0x13612b82
mov edi, esi
shr edi, 1
mov dword [ebp - 0x50], edi
shl esi, 0x1f
xor esi, eax
mov dword [ebp - 0x4c], esi
mov eax, esi
xor eax, 0x30dfea7e
mov esi, edi
xor esi, 0xe63b37b8
add eax, dword [ebp - 0x2c]
adc esi, ebx
add eax, ecx
adc esi, edx
mov edx, dword [ebp - 0x20]
mov edi, edx
shr edi, 3
mov ecx, edx
shl ecx, 0x1d
xor ecx, edx
mov dword [ebp - 0x30], ecx
xor ecx, 0x326b53b9
mov edx, edi
mov ebx, edi
mov dword [ebp - 0x38], edi
xor edx, 0xe7d1af98
add eax, dword [ebp - 0x28]
adc esi, dword [ebp - 0x24]
add eax, ecx
adc esi, edx
mov edi, dword [ebp - 0x30]
xor edi, 0xc90af53e
mov ecx, ebx
xor ecx, 0xf3b813a4
mov ebx, dword [ebp - 0x20]
lea edx, [ebx*4]
mov dword [ebp - 0x70], edx
xor edx, 0x20d5a17e
mov dword [ebp - 0x24], edx
xor ebx, 0x76f50ac1
add edi, eax
adc ecx, esi
add edi, ebx
adc ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x4c]
xor eax, 0xec9ed47d
mov ebx, dword [ebp - 0x50]
mov edx, ebx
xor edx, 0x9300d65
mov dword [ebp - 0xe0], eax
add edi, eax
adc edx, ecx
add edi, 4
mov dword [ebp - 0xe4], edi
adc edx, 0
mov dword [ebp - 0xdc], edx
mov edi, dword [ebp - 0x20]
lea ecx, [edi + edi]
mov eax, ecx
mov esi, ecx
mov dword [ebp - 0x28], ecx
xor eax, 0x9a9dc8d4
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x74]
xor eax, 0x6c9ed47d
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x78]
xor eax, 0x5cc4c64a
mov dword [ebp - 0xd0], eax
mov ecx, edi
shl ecx, 4
mov dword [ebp - 0x7c], ecx
mov eax, edi
xor eax, 0xec9ed47d
mov dword [ebp - 0xcc], eax
mov eax, ecx
xor eax, 0xbb7939f0
mov dword [ebp - 0xc8], eax
mov eax, edi
xor eax, 0xcb1f0e81
mov dword [ebp - 0x44], eax
mov eax, edi
xor eax, 0x22a2e890
mov dword [ebp - 0x40], eax
mov eax, edi
shr eax, 4
mov dword [ebp - 0x24], eax
mov ecx, edi
shl ecx, 0x1c
xor ecx, edi
mov dword [ebp - 0x2c], ecx
mov edx, ecx
xor edx, 0xb3612b82
mov dword [ebp - 0x5c], edx
mov edx, eax
xor edx, 0x9cbc6ee9
mov dword [ebp - 0x58], edx
xor ecx, 0xc71f9523
mov dword [ebp - 0x3c], ecx
xor eax, 0xf354cc7c
mov dword [ebp - 0x60], eax
xor dword [ebp - 0x30], 0x597c4af5
xor dword [ebp - 0x38], 0x1eac6139
mov eax, dword [ebp - 0x70]
mov ecx, eax
xor ecx, 0xf47c94e2
mov dword [ebp - 0xac], ecx
mov ecx, edi
xor ecx, 0x584526aa
mov dword [ebp - 0xa8], ecx
mov ecx, dword [ebp - 0x4c]
xor ecx, 0xab04e479
mov dword [ebp - 0xa4], ecx
xor ebx, 0x1dae4f8f
mov dword [ebp - 0xa0], ebx
mov ecx, edi
xor ecx, 0x49b8262f
mov dword [ebp - 0xb4], ecx
mov ebx, edi
xor ebx, 0x54fb1b86
mov edx, esi
xor edx, 0x5f76093a
mov ecx, edi
xor ecx, 0x971a5f70
xor eax, 0xf2fafb9
mov esi, edi
xor esi, 0x68e5a08f
add esi, dword [ebp - 0x30]
adc eax, dword [ebp - 0x38]
add esi, ecx
adc eax, edx
add esi, ebx
adc eax, dword [ebp - 0xb4]
add esi, dword [ebp - 0xa4]
adc eax, dword [ebp - 0xa0]
add esi, dword [ebp - 0xa8]
adc eax, dword [ebp - 0xac]
add esi, dword [ebp - 0x5c]
adc eax, dword [ebp - 0x58]
add esi, dword [ebp - 0x40]
adc eax, dword [ebp - 0x44]
add esi, dword [ebp - 0x3c]
adc eax, dword [ebp - 0x60]
xor dword [ebp - 0x28], 0x6333ddc0
mov ebx, edi
xor ebx, 0xdd5d176f
mov ecx, edi
xor ecx, 0x35b4a621
mov edx, edi
xor edx, 0xe683b50a
add ebx, esi
mov esi, dword [ebp - 0x28]
adc esi, eax
add ebx, edx
adc esi, ecx
mov dword [ebp - 0x28], esi
mov eax, edi
shr eax, 5
mov dword [ebp - 0x30], eax
mov esi, edi
shl esi, 0x1b
xor esi, edi
mov dword [ebp - 0x38], esi
mov ecx, esi
xor ecx, 0xc8e06adc
mov edx, eax
xor edx, 0x615aae6
xor esi, 0xf7bad955
mov dword [ebp - 0x5c], esi
xor eax, 0x38d28d96
mov dword [ebp - 0x58], eax
mov eax, edi
xor eax, 0x8369cb57
mov dword [ebp - 0x44], eax
mov eax, edi
xor eax, 0x7709b77
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x7c]
xor eax, 0x65369662
mov dword [ebp - 0x40], eax
xor edi, 0xf88f6488
mov dword [ebp - 0x3c], edi
mov edi, dword [ebp - 0x4c]
mov eax, edi
xor eax, 0x8e2173b4
mov esi, dword [ebp - 0x50]
xor esi, 0xc85c87d2
add ecx, ebx
adc edx, dword [ebp - 0x28]
add ecx, dword [ebp - 0x5c]
adc edx, dword [ebp - 0x58]
add ecx, eax
adc edx, esi
add ecx, dword [ebp - 0x60]
adc edx, dword [ebp - 0x44]
add ecx, dword [ebp - 0x3c]
adc edx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x70]
xor esi, 0x643f9bb0
mov ebx, dword [ebp - 0x20]
mov eax, ebx
xor eax, 0x71de8c4b
add eax, ecx
adc esi, edx
add eax, 9
mov dword [ebp - 0x60], eax
adc esi, 0
mov dword [ebp - 0x70], esi
mov eax, edi
xor eax, 0x7ba22880
mov esi, dword [ebp - 0x50]
xor esi, 0x753bc6ea
xor dword [ebp - 0x64], 0x976f5e52
mov ecx, ebx
xor ebx, 0x15fdc374
mov edx, ecx
mov edi, ecx
xor edx, 0xba6d7b7c
xor ecx, 0x337a58e9
add ecx, ebx
adc edx, dword [ebp - 0x64]
add ecx, eax
adc edx, esi
mov eax, dword [ebp - 0x2c]
xor eax, 0x6c85a716
xor dword [ebp - 0x24], 0x84088eaf
mov esi, edi
xor edi, 0x212daf4a
xor esi, 0x845dd77f
add eax, ecx
mov ecx, dword [ebp - 0x24]
adc ecx, edx
add eax, esi
mov dword [ebp - 0x2c], eax
adc ecx, edi
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x4c]
xor edx, 0xea023c8b
mov ecx, dword [ebp - 0x50]
xor ecx, 0x6440f0c8
mov ebx, dword [ebp - 0x38]
xor ebx, 0xb1ad5ef2
mov edi, dword [ebp - 0x30]
xor edi, 0x2c549414
mov esi, dword [ebp - 0x7c]
xor esi, 0x12f5a68
mov eax, dword [ebp - 0x20]
xor eax, 0x1e52a10d
add edx, dword [ebp - 0x2c]
adc ecx, dword [ebp - 0x24]
add edx, ebx
adc ecx, edi
add edx, eax
adc ecx, esi
add edx, 4
mov dword [ebp - 0x4c], edx
adc ecx, 0
mov dword [ebp - 0x50], ecx
mov edi, dword [ebp - 0x20]
mov eax, edi
xor eax, 0xe46f9806
mov ecx, edi
xor ecx, 0x58ad4c63
mov esi, dword [ebp - 0x74]
xor esi, 0x2752b39c
mov ebx, dword [ebp - 0x78]
mov edx, ebx
xor edx, 0xe58d3a89
add esi, ecx
adc edx, eax
add esi, 1
mov dword [ebp - 0x5c], esi
adc edx, 0
mov dword [ebp - 0x58], edx
xor dword [ebp - 0x74], 0x4d4ee47a
mov eax, ebx
xor eax, 0x3353b91a
mov dword [ebp - 0x78], eax
mov eax, edi
xor eax, 0xcd4ee46e
mov dword [ebp - 0xac], eax
xor edi, 0x823f0fb3
mov eax, dword [ebp - 0x6c]
mov ecx, eax
imul ecx, eax
imul ecx, ecx
imul ecx, ecx
mov dword [ebp - 0xa4], ecx
mov dword [ebp - 0xa8], edi
add eax, edi
mov dword [ebp - 0xa0], eax
pcmpeqd xmm0, xmm0
xorps xmm1, xmm1
xor ecx, ecx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x44], 0
xor ebx, ebx
mov dword [ebp - 0x64], 0
jmp 0x542254
mov eax, dword [ebp - 0x30]
xor dword [ebp - 0x38], eax
xor dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x2c]
xor dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x28]
xor dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x6c]
cmp ecx, dword [ebp - 0x54]
jge 0x541c75
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x24], ecx
lea edx, [eax + ecx]
cmp dword [ebp - 0xe8], 0xae354f1
jne 0x542320
nop
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0xd4]
mov dword [ebp - 0x28], edx
mov edx, ebx
mov ecx, ebx
sbb ecx, dword [ebp - 0xd0]
mov edi, eax
imul edi, dword [ebp - 0xc8]
mov ebx, dword [ebp - 0xcc]
mov dword [ebp - 0x7c], edx
mul ebx
mov esi, eax
add edx, edi
imul ecx, ebx
add ecx, edx
add esi, dword [ebp - 0x60]
adc ecx, dword [ebp - 0x70]
mov eax, esi
mov edx, dword [ebp - 0x28]
sub eax, edx
mov edi, ecx
sbb edi, 0
imul edi, edx
mul edx
add edx, edi
mov edi, dword [ebp - 0x4c]
sub edi, esi
mov esi, dword [ebp - 0x50]
sbb esi, ecx
add edi, eax
adc esi, edx
mov edx, esi
mov ecx, dword [ebp - 0xe0]
shld edx, edi, cl
mov ebx, edi
shl ebx, cl
test cl, 0x20
cmovne edx, ebx
mov eax, 0
cmovne ebx, eax
add ebx, edi
adc edx, esi
mov eax, dword [ebp - 0x5c]
sub eax, ebx
mov ecx, dword [ebp - 0x58]
sbb ecx, edx
mov ebx, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x74]
sbb ecx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx + 0x1c]
mov esi, dword [ecx + 0x18]
mov edi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
jl 0x54234f
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], edx
jmp 0x5423f0
nop
mov eax, dword [ebp - 0xe4]
add eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0xdc]
adc ecx, ebx
sub eax, edx
sbb ecx, 0
cmp eax, dword [ebp - 0x6c]
sbb ecx, dword [ebp - 0xd8]
mov ecx, edx
mov edx, dword [edx + 0xc]
mov esi, dword [ecx + 8]
mov edi, dword [ecx]
mov ecx, dword [ecx + 4]
jge 0x542310
nop
mov dword [ebp - 0x34], ecx
lea ebx, [eax*8]
movdqu xmmword [ebp - 0x104], xmm0
movups xmmword [ebp - 0x114], xmm1
shr bl, 3
and bl, 0xf
neg bl
movsx ebx, bl
mov ecx, dword [ebp + ebx - 0x104]
not ecx
and edi, ecx
mov dword [ebp - 0x30], edi
mov ecx, dword [ebp + ebx - 0x100]
not ecx
mov edi, dword [ebp - 0x34]
and edi, ecx
mov ecx, dword [ebp + ebx - 0xfc]
not ecx
and esi, ecx
mov dword [ebp - 0x2c], esi
mov ecx, dword [ebp + ebx - 0xf8]
not ecx
and edx, ecx
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp - 0x64]
mov edx, ecx
xor edx, 1
and ecx, 1
lea ecx, [edx + ecx*2]
add eax, dword [ebp - 0xac]
mov edx, eax
mov ebx, dword [ebp - 0xa8]
xor edx, ebx
and eax, ebx
mov ebx, dword [ebp - 0x24]
sub ebx, dword [ebp - 0xa0]
add ebx, edx
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x24], ebx
mov eax, dword [ebp - 0x80]
lea edx, [eax + ecx*4]
mov dword [ebp - 0x64], ecx
add edx, dword [eax + ecx*4]
mov dword [ebp - 0x34], edx
xor ebx, ebx
mov ecx, edi
nop
mov eax, dword [0x850a08]
xor eax, dword [ebp - 0x20]
cmp eax, 0x90081db5
jne 0x542230
nop
mov dword [0x850a08], 0x906e721d
mov ecx, dword [ebp - 0x24]
sub ecx, dword [ebp - 0xa4]
cmp dword [ebp - 0x54], ecx
jg 0x542254
jmp 0x541c75
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], 0
jmp 0x541c75
nop
mov eax, dword [0x8509e4]
mov esi, dword [0x8509dc]
sub esi, dword [ebp - 0x68]
add esi, eax
mov dword [ebp - 0x10], 0xffffffff
mov ecx, esi
call dword [0x834360]
lea edi, [ebp - 0x9c]
mov ecx, edi
push 0x751b04
call esi
mov dword [ebp - 0x10], 3
push 0x81be84
push edi
call fcn.0073147b
add esp, 8
nop
mov dword [ebp - 0x10], 0
call fcn.006fce21
nop
mov dword [ebp - 0x10], 1
call fcn.006fce21
nop
mov eax, dword [ebp - 0xb8]
test dword [ebp - 0xbc], eax
sete al
mov edx, dword [0x7d4c3c]
xor edx, dword [ebp - 0x44]
mov ecx, dword [0x7d4c34]
xor ecx, dword [ebp - 0x3c]
or ecx, edx
mov edx, dword [0x7d4c38]
xor edx, dword [ebp - 0x40]
mov esi, dword [0x7d4c30]
xor esi, dword [ebp - 0x38]
or esi, edx
or esi, ecx
setne cl
and cl, al
movzx eax, byte [ebp - 0x45]
or al, cl
mov byte [0x889bde], al
mov dword [ebp - 0x10], 2
call fcn.006fce21
nop dword [eax + eax]
push ebp
sub esp, 0xc
add ebp, 0xc
call fcn.007311e0
nop dword [eax]
push ebp
sub esp, 0xc
add ebp, 0xc
call fcn.007311e0
nop dword [eax]
push ebp
sub esp, 0xc
add ebp, 0xc
call fcn.007311e0
nop dword [eax]
push ebp
sub esp, 0xc
add ebp, 0xc
nop
mov eax, dword [0x8509e0]
mov esi, dword [0x8509d0]
sub esi, dword [ebp - 0x68]
add esi, eax
mov ecx, esi
call dword [0x834360]
lea ecx, [ebp - 0x9c]
call esi
add esp, 0xc
pop ebp
ret