Function at 0x403c08
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
push ebx
not eax
mov dword [ebp - 4], 0xfffe14d2
add eax, dword [0x414018]
push esi
add esi, 0x5501
mov dword [ebp - 0x24], 0xfffe14dd
xor ebx, ebx
xor esi, esi
xor esi, dword [0x40f372]
sbb esi, dword [section..reloc]
mov dword [0x40f372], esi
mov dword [ebp - 0xc], ebx
add dword [0x40f3ee], 0x379f
mov eax, dword [ebp - 0x24]
push edi
mov edi, 0x2a195
xor esi, esi
xor esi, dword [0x40f356]
and dword [0x414030], esi
xor eax, edi
mov esi, 0x34ab9
add eax, esi
sub dword [0x407048], 0x414004
mov dword [ebp - 0x14], eax
sbb dword [0x40f37a], 0x407004
mov dword [ebp - 0x34], ebx
push dword [ebp + 8]
call fcn.00401bfe
sbb dword [0x40703c], ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
and ecx, dword [0x40f402]
mov ecx, dword [ebp - 0x14]
dec dword [0x414034]
xor eax, edi
add eax, esi
cmp ecx, eax
mov dword [0x40f3f2], 0x69ab
jne 0x403cd8
mov eax, dword [ebp - 4]
or dword [0x407008], 0x40f40a
xor eax, edi
add eax, esi
jmp 0x4043ff
xor dword [0x407030], 0x7acf
push dword [ebp - 0x14]
push dword [ebp + 8]
sub dword [0x414024], 0x41403c
call fcn.0040239f
sub ecx, dword [0x414038]
mov dword [0x40e750], eax
sub dword [0x414020], edx
mov eax, dword [ebp - 4]
mov dword [0x40f3fa], 0x5cb5
mov ecx, dword [0x40e750]
xor eax, edi
add eax, esi
mov dword [0x40f3f6], 0x71db
cmp ecx, eax
je 0x403cc2
sub dword [0x407044], 0x64c6
mov eax, dword [0x40e750]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x14], eax
or dword [0x40f3ee], edx
mov eax, dword [0x40e750]
sbb dword [0x414014], 0x407030
mov ecx, dword [ebp + 8]
add dword [section..gear], 0x2c73
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x10], ebx
sub dword [0x407048], 0x61ba
mov dword [ebp - 0x28], ecx
mov eax, dword [0x40e750]
add ecx, 0x3036
mov ecx, dword [ebp + 8]
sbb dword [0x407030], 0x40703c
add ecx, dword [eax + 0x24]
inc dword [0x40f376]
mov dword [ebp - 0x30], ecx
xor ecx, ecx
or ecx, dword [0x40f3e2]
sbb dword [0x40f386], ecx
mov eax, dword [0x40e750]
mov ecx, dword [ebp + 8]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x34], ecx
sbb dword [0x414018], 0x414000
mov eax, dword [ebp - 0x14]
sbb dword [0x40f3e2], 0x407000
test eax, eax
mov dword [0x40f35a], 0x2db
je 0x40424c
mov esi, 0x467b956
mov ebx, 0x6b79ca38
sbb dword [0x414004], edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 8]
adc edx, dword [0x407040]
mov edx, dword [ebp - 0x10]
xor dword [0x40f37a], 0x5dff
add ecx, dword [eax + edx*4]
mov eax, dword [0x40f40a]
xor eax, dword [0x40f3fa]
mov dword [0x40f40a], eax
mov dword [ebp - 0x20], ecx
mov eax, dword [0x41402c]
add eax, dword [0x414014]
mov dword [0x41402c], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
adc eax, dword [0x40f37a]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
adc ecx, ecx
mov dword [ebp - 0x44], 0x90e18c9e
not eax
mov eax, 0xfffff3d9
add ecx, dword [0x414028]
mov dword [ebp - 0x40], eax
xor dword [0x40f3ee], ebx
mov dword [ebp - 0x3c], 0x90e18c9f
xor dword [0x40f36a], ebx
mov dword [ebp - 0x38], eax
xor dword [section..gear], 0x668d
mov ecx, dword [ebp - 0xc]
sub dword [0x41403c], edx
mov eax, 0x3e5a
xor dword [0x40f35a], 0x407028
xor ax, word [ecx + 0x20]
mov ecx, 0x3828
add ax, cx
adc dword [0x414030], 0x7aab
movzx eax, ax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x3c]
or ecx, 0x7ef7
mov ecx, dword [ebp - 0x38]
mov dword [0x40f3e6], 0x3505
xor al, 0x56
add al, 0x38
movzx eax, al
push eax
xor dword [0x40f3f2], 0x407038
lea eax, [ebp - 0x6c]
push eax
mov dword [0x414014], 0x1c61
call fcn.0040326d
movzx eax, byte [0x40f34e]
add dword [0x407044], eax
mov eax, dword [ebp - 0x44]
adc dword [0x407028], 0x2307
mov ecx, dword [ebp - 0x40]
and dword [0x40f352], 0x40f35e
xor eax, esi
and dword [0x40700c], 0x41401c
add eax, ebx
mov dword [0x40f402], 0xc99
jmp 0x403fd4
and dword [section..reloc], ecx
mov edx, dword [ebp - 0xc]
mov ecx, 0x3e5a
xor dword [0x40700c], 0x7c65
xor cx, word [edx + eax*4 + 2]
not edx
mov edx, 0x3828
add cx, dx
and dword [0x40f3ea], 0xd79
movzx ecx, cx
not dword [0x40f38a]
mov dword [ebp - 0x2c], ecx
movzx ecx, word [0x40f3d2]
sub dword [0x40f3f2], ecx
mov ecx, dword [ebp - 0xc]
add dword [0x407024], 0x1f7c
movzx ecx, word [ecx + eax*4]
or dword [0x414018], 0x40f3f6
xor ecx, 0x3e5a
add ecx, edx
mov edx, dword [ebp - 0x2c]
adc dword [0x414034], 0x43a6
mov byte [ebp + edx - 0x6c], cl
or dword [0x40f386], ebx
mov ecx, dword [ebp - 0x3c]
adc dword [0x40f36e], edx
mov edx, dword [ebp - 0x38]
xor ecx, esi
mov dword [0x41402c], 0x4fb
lea eax, [eax + ecx + 0x6b79ca38]
mov dword [section..reloc], edi
mov ecx, dword [ebp - 0x1c]
cmp eax, ecx
mov dword [0x40700c], 0x3677
jne 0x403f31
dec eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
xor eax, esi
or dword [0x40f382], 0x414038
add eax, ebx
mov dword [0x407040], 0x630a
jmp 0x404131
mov eax, dword [ebp - 0xc]
adc dword [0x414004], 0x36ff
xor ecx, ecx
add eax, 0x948635c8
mov edx, 0x4d39
adc ecx, 0xfffffac5
xor eax, esi
xor ecx, 0x91c
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp - 0xc]
and edx, dword [0x40f3ee]
mov al, byte [ebp + eax - 0x6c]
mov edx, dword [0x414010]
and dword [0x40700c], edx
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
xor cl, 0x56
adc dword [0x414030], 0x414038
add cl, 0x38
mov dword [0x40701c], 0x3b78
cmp al, cl
mov dword [0x40f3ea], 0x1af5
je 0x404119
and dword [0x40f3e2], ebx
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x48]
inc edx
mov ecx, dword [ebp - 0xc]
dec dword [0x414038]
mov cl, byte [ebp + ecx - 0x6c]
mov edx, dword [ebp - 0x20]
add dword [0x40f35e], 0x6146
xor eax, esi
cmp cl, byte [edx + eax + 0x6b79ca38]
jne 0x404198
and dword [0x40f38a], edx
mov eax, dword [ebp - 0x4c]
xor edx, dword [0x40f40a]
mov ecx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x20]
and dword [0x40f372], 0x40f3e2
xor cl, 0x56
mov dword [0x40f356], 0x707a
xor eax, esi
xor dword [0x40f402], 0x40f376
add cl, 0x38
cmp byte [edx + eax + 0x6b79ca38], cl
mov dword [0x40f3ee], 0x5c9
je 0x4041f8
sbb dword [0x41401c], edi
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0xc]
xor eax, esi
lea eax, [eax + ecx + 0x6b79ca38]
xor ecx, ecx
add ecx, dword [0x40f376]
sbb ecx, dword [0x40f382]
mov dword [0x40f376], ecx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
adc dword [0x40f3fa], 0x407d
xor ecx, 0x91c
add dword [0x414020], 0x407010
xor eax, esi
add eax, ebx
mov dword [0x407044], 0x122e
adc ecx, 0x53a
adc dword [section..reloc], 0x3032
or eax, ecx
mov dword [0x40f372], 0x56c0
jne 0x404013
or eax, ecx
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
dec dword [0x40f3fa]
xor eax, esi
add eax, ebx
neg ecx
mov dword [ebp - 0xc], eax
sub dword [0x414034], ebx
mov eax, dword [ebp - 4]
inc ecx
mov ecx, dword [ebp - 0xc]
xor eax, edi
add eax, 0x34ab9
mov dword [0x40f402], 0x6c74
cmp ecx, eax
mov dword [0x40f406], 0x254c
jne 0x404208
mov eax, dword [0x40f3e2]
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x10], eax
jb 0x403dee
jmp 0x404241
mov eax, 0x79c4
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
jmp 0x4041a0
or dword [0x407020], edi
mov eax, dword [ebp - 0x30]
mov ecx, dword [0x40e03c]
mov esi, dword [0x40e058]
sub esi, ecx
imul ecx, dword [ecx + esi]
mov ecx, dword [ebp - 0x10]
or dword [0x40f352], edx
movzx eax, word [eax + ecx*2]
sub dword [0x40f3f2], edi
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx + eax*4]
add esi, esi
mov dword [ebp - 0x34], eax
sbb esi, dword [0x40f402]
mov esi, 0x34ab9
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
xor eax, edi
add eax, esi
cmp ecx, eax
je 0x403cc2
mov eax, dword [ebp - 0x34]
add eax, dword [ebp + 8]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x4042ea
mov dword [ebp - 0x18], 0
mov eax, 3
push eax
mov edx, 0
pop edx
add edx, 8
push edx
pop ecx
push 6
dec ecx
pop ebx
dec ebx
xchg ebx, ecx
sub ebx, ecx
xchg ebx, ecx
dec ecx
mov eax, dword [ebp + 0x14]
imul eax, ecx
sub esp, eax
mov dword [ebp - 0x18], esp
mov eax, dword [ebp - 4]
xor eax, edi
add eax, esi
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
cmp eax, ecx
je 0x4042ea
lea eax, [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
add eax, 4
mov ebx, dword [eax]
mov dword [edx + ecx*4], ebx
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp + 8]
xor ecx, edi
lea ecx, [ecx + edx + 0x34ab9]
mov dword [ebp + 8], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x14]
cmp ecx, edx
jne 0x4042bc
mov eax, dword [ebp - 4]
xor eax, edi
add eax, esi
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x34]
call fcn.00402196
mov dword [ebp + 8], eax
mov ebx, 0
add ebx, 0x7263
add ecx, ebx
mov esi, 0x1423
add esi, 3
cmp ebx, esi
jne 0x4043d9
imul ecx, ecx, 0x32874923
xor eax, ebx
mov eax, 0x45287365
or ecx, eax
adc ebx, 0x83279823
sbb edi, 0x78234092
imul ecx, ecx, 0x32874923
xor eax, ebx
mov eax, 0x45287365
or ecx, eax
adc ebx, 0x83279823
sbb edi, 0x78234092
imul ecx, ecx, 0x32874923
xor eax, ebx
mov eax, 0x45287365
or ecx, eax
adc ebx, 0x83279823
sbb edi, 0x78234092
imul ecx, ecx, 0x32874923
xor eax, ebx
mov eax, 0x45287365
or ecx, eax
adc ebx, 0x83279823
sbb edi, 0x78234092
imul ecx, ecx, 0x32874923
xor eax, ebx
mov eax, 0x45287365
or ecx, eax
adc ebx, 0x83279823
sbb edi, 0x78234092
imul ecx, ecx, 0x32874923
xor eax, ebx
mov eax, 0x45287365
or ecx, eax
adc ebx, 0x83279823
sbb edi, 0x78234092
imul ecx, ecx, 0x32874923
xor eax, ebx
mov eax, 0x45287365
or ecx, eax
adc ebx, 0x83279823
sbb edi, 0x78234092
mov ebx, ecx
sub ebx, 0x8922
add edx, ebx
mov ebx, dword [ebp + 8]
imul edx, edx, 0x9282
call ebx
mov esi, edx
push eax
mov ebx, esp
sub ebx, esi
mov ecx, dword [ebx + edx]
add dword [ebp - 8], ecx
pop edx
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
leave
ret