Function at 0x431523
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a8
and dword [ebp - 4], 0
xor eax, eax
push esi
push edi
lea edi, [ebp - 0x2c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x3c]
push eax
mov eax, 0x404c94
call fcn.0043e85b
mov dword [ebp - 0xa4], 0x17100d2a
pop ecx
mov dword [ebp - 0xa0], 0x270f0f02
mov dword [ebp - 0x9c], 0x63061702
mov byte [ebp - 0xa4], 0x49
lea eax, [ebp - 0xa4]
inc eax
xor byte [eax], 0x63
jne 0x431575
push 1
push dword [ebp - 0x3c]
push 0x80000002
call fcn.00438d23
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4315c9
lea esi, [ebp - 0x38]
call fcn.0040a1e9
mov eax, esi
push eax
push 4
lea eax, [ebp - 0xa4]
push eax
push edi
call fcn.00439027
push edi
call fcn.00438d10
add esp, 0x14
cmp dword [ebp - 0x34], 4
jne 0x4315c4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax]
mov dword [ebp - 4], eax
call fcn.0040a206
call fcn.004310c9
lea esi, [ebp - 0x1c]
mov dword [ebp - 0x14], eax
call fcn.00424fc8
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x50]
push eax
mov dword [ebp - 8], 0x10
call fcn.0042955e
pop ecx
pop ecx
cmp eax, 1
jne 0x431604
lea eax, [ebp - 0x50]
push eax
call fcn.00425330
mov edi, esi
call fcn.00424e82
lea esi, [ebp - 0x40]
call fcn.0043b865
push dword [ebp - 0x40]
call fcn.00432064
pop ecx
mov ecx, dword [ebp - 0x1c]
mov edx, eax
mov dword [ebp - 0x58], edx
test ecx, ecx
jne 0x431625
xor eax, eax
jmp 0x43162a
call fcn.00424786
push ebx
lea ebx, [eax + edx + 8]
lea eax, [ebp - 4]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1a8]
xor edx, edx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp - 0x18]
mov ecx, 4
cld
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0xc], edi
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], edx
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 0x18]
mov ecx, 4
cld
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x10], edi
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
cmp ecx, edx
jne 0x431686
mov dword [ebp - 0x18], edx
jmp 0x43168e
call fcn.00424786
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x10], edx
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x18]
cld
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x10], edi
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], edx
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x58]
cld
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x18], edi
lea esi, [ebp - 0x38]
call fcn.0040a1e9
lea eax, [ebp - 0x1a8]
push ebx
push eax
lea eax, [ebp - 0x64]
call fcn.0042dfc7
pop ecx
pop ecx
jmp 0x4316f1
push 0x19
call fcn.00429723
lea eax, [ebp - 0x1a8]
push ebx
push eax
lea eax, [ebp - 0x64]
call fcn.0042dfc7
add esp, 0xc
mov edi, eax
lea esi, [ebp - 0x38]
call 0x40a22a
lea esi, [ebp - 0x64]
call fcn.0040a206
cmp dword [ebp - 0x34], 0
je 0x4316d7
mov eax, dword [ebp - 0x38]
pop ebx
test eax, eax
jne 0x431715
xor ecx, ecx
jmp 0x431718
lea ecx, [eax + 7]
mov cl, byte [ecx]
mov byte [ebp - 0x2c], cl
test eax, eax
jne 0x431725
xor ecx, ecx
jmp 0x431728
lea ecx, [eax + 6]
mov cl, byte [ecx]
mov byte [ebp - 0x2b], cl
test eax, eax
jne 0x431735
xor ecx, ecx
jmp 0x431738
lea ecx, [eax + 5]
mov cl, byte [ecx]
mov byte [ebp - 0x2a], cl
test eax, eax
jne 0x431745
xor ecx, ecx
jmp 0x431748
lea ecx, [eax + 4]
mov cl, byte [ecx]
mov byte [ebp - 0x29], cl
test eax, eax
jne 0x431755
xor ecx, ecx
jmp 0x431758
lea ecx, [eax + 3]
mov cl, byte [ecx]
mov byte [ebp - 0x28], cl
test eax, eax
jne 0x431765
xor ecx, ecx
jmp 0x431768
lea ecx, [eax + 2]
mov cl, byte [ecx]
mov byte [ebp - 0x27], cl
test eax, eax
jne 0x431775
xor ecx, ecx
jmp 0x431778
lea ecx, [eax + 1]
mov cl, byte [ecx]
mov byte [ebp - 0x26], cl
mov cl, byte [eax]
mov byte [ebp - 0x25], cl
test eax, eax
jne 0x43178a
xor ecx, ecx
jmp 0x43178d
lea ecx, [eax + 0xb]
mov cl, byte [ecx]
mov byte [ebp - 0x24], cl
test eax, eax
jne 0x43179a
xor ecx, ecx
jmp 0x43179d
lea ecx, [eax + 0xa]
mov cl, byte [ecx]
mov byte [ebp - 0x23], cl
test eax, eax
jne 0x4317aa
xor ecx, ecx
jmp 0x4317ad
lea ecx, [eax + 9]
mov cl, byte [ecx]
mov byte [ebp - 0x22], cl
test eax, eax
jne 0x4317ba
xor ecx, ecx
jmp 0x4317bd
lea ecx, [eax + 8]
mov cl, byte [ecx]
mov byte [ebp - 0x21], cl
test eax, eax
jne 0x4317ca
xor ecx, ecx
jmp 0x4317cd
lea ecx, [eax + 0xf]
mov cl, byte [ecx]
mov byte [ebp - 0x20], cl
test eax, eax
jne 0x4317da
xor ecx, ecx
jmp 0x4317dd
lea ecx, [eax + 0xe]
mov cl, byte [ecx]
mov byte [ebp - 0x1f], cl
test eax, eax
jne 0x4317ea
xor ecx, ecx
jmp 0x4317ed
lea ecx, [eax + 0xd]
mov cl, byte [ecx]
mov byte [ebp - 0x1e], cl
test eax, eax
je 0x4317f9
add eax, 0xc
mov al, byte [eax]
mov edi, dword [ebp + 8]
mov byte [ebp - 0x1d], al
lea esi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x38]
call fcn.0040a206
lea esi, [ebp - 0x1c]
call fcn.00424fe3
lea esi, [ebp - 0x3c]
call fcn.00424fe3
mov eax, dword [ebp + 8]
pop edi
pop esi
leave
ret