Function at 0x4380b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [esp - 0x20], edx
mov eax, dword [0x4baab8]
xor eax, dword [0x4ba958]
push ebx
mov ebx, ecx
mov esp, esp
push esi
push edi
mov dword [ebp - 0xc], ebx
lea edi, [ebx + 0xa8]
mov ebx, ebx
push edi
call eax
nop
mov dword [esp - 0x40], 0x3ac4c2c7
mov dword [esp - 4], 0x221dacb0
xor dword [esp - 4], 0x37bc374d
add dword [esp - 4], 0x41c92246
add dword [esp - 4], 0x2518afee
mov esp, esp
sub dword [esp - 4], 0x44619838
sub dword [esp - 4], 0xa93f557
sub dword [esp - 4], 0x2d8ddf66
sub esp, 4
mov dword [esp - 0x3c], 0x6bfb0b3
call fcn.0048b6d0
add esp, 4
test eax, eax
mov dword [esp - 0x30], 0x4d32fc1d
je 0x43814e
mov ecx, eax
call fcn.0045cf60
mov dword [esp - 0x30], ecx
mov esi, eax
mov dword [ebp - 4], eax
jmp 0x438153
xor esi, esi
mov dword [ebp - 4], esi
lea ecx, [ebp - 8]
mov dword [ebp - 8], esi
mov dword [esp - 0x3c], 0x7ba591a8
push ecx
lea ecx, [ebx + 0x60]
call fcn.00436e00
push dword [ebp + 0x14]
mov dword [esp - 0x34], esp
mov ecx, esi
call fcn.0045f580
push dword [ebp + 8]
mov esp, esp
mov ecx, esi
call fcn.0045f080
mov eax, dword [ebx + 0x10]
xchg ebx, ebx
mov dword [ebp + 0x14], 0x300fcdc0
xor dword [ebp + 0x14], 0x2c37207f
add dword [ebp + 0x14], 0x5abdd869
xor dword [ebp + 0x14], 0x274da0ff
mov dword [esp - 0xc], 0x58de0e8
sub dword [ebp + 0x14], 0x51bb66d7
mov dword [ebp - 0x18], 0xca7b8f9
xor dword [ebp - 0x18], 0x47b76a4e
mov dword [esp - 0xc], 0x5dc86252
add dword [ebp - 0x18], 0x25c1c40
add dword [ebp - 0x18], 0x67829dd
xor dword [ebp - 0x18], 0x2e4e4cca
sub dword [ebp - 0x18], 0x247c2be5
mov dword [esp - 0x1c], edx
xor dword [ebp - 0x18], 0x592f2839
mov dword [ebp - 0x14], 0x1afeb14e
xor dword [ebp - 0x14], 0x2171c67c
sub dword [ebp - 0x14], 0xc42593f
mov edx, edx
sub dword [ebp - 0x14], 0x1481a36a
add dword [ebp - 0x14], 0x629ae351
xor dword [ebp - 0x14], 0x25c2849e
xchg esi, esi
xor dword [ebp - 0x14], 0x58a4d944
cmp eax, 1
jne 0x438581
mov eax, dword [ebp + 0x10]
mov dword [esp - 0x20], 0x5364d239
cmp eax, 1
jne 0x438324
mov eax, dword [0x4bacb0]
mov dword [esp - 0x38], 0x5da332a7
xor eax, dword [0x4ba958]
nop
mov dword [esp - 4], 0x36f0c8d0
xor dword [esp - 4], 0x41a1639d
mov dword [esp - 0x38], 0x28c51e7
xor dword [esp - 4], 0x814f7d
sub dword [esp - 4], 0x25550a5
sub dword [esp - 4], 0x6d6cbb66
xor dword [esp - 4], 0x26dee296
mov esp, esp
sub dword [esp - 4], 0x2ed03ab3
sub esp, 4
call eax
mov esi, dword [ebp + 0xc]
mov dword [esp - 0xc], 0x66955de3
nop
sub esp, 4
mov dword [esp], 0x4cce3db5
mov dword [esp - 0x44], 0x11cf5e
sub dword [esp], 0x4487e641
add dword [esp], 0x3ef13454
sub dword [esp], 0x112a9ad4
mov dword [esp - 0x40], ebp
add dword [esp], 0x1b057738
sub dword [esp], 0xebf83a5
xor dword [esp], 0x4252e486
sub eax, dword [esi]
mov dword [esp - 0x18], 0x5e1f5c30
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x18], eax
xchg ecx, ecx
mov eax, dword [0x4bacb0]
xor eax, dword [0x4ba958]
call eax
mov dword [esp - 0x18], esi
sub eax, dword [esi + 4]
cdq
sub eax, edx
mov dword [esp - 0x40], 0x2cf861e0
sar eax, 1
mov dword [ebp - 0x14], eax
jmp 0x43838f
test eax, eax
jne 0x43838f
mov ebp, ebp
mov dword [ebp - 0x18], 0x55a9be34
add dword [ebp - 0x18], 0x1439253d
sub dword [ebp - 0x18], 0x6134664c
add dword [ebp - 0x18], 0x3a6f9354
mov dword [esp - 0x30], ebp
add dword [ebp - 0x18], 0x7c9c41d
xor dword [ebp - 0x18], 0xcae7d496
mov dword [ebp - 0x14], 0x56b455dd
mov dword [esp - 0x3c], edi
xor dword [ebp - 0x14], 0x42dc94aa
xor dword [ebp - 0x14], 0x1c2990a7
xor dword [ebp - 0x14], 0x62935c4d
xor dword [ebp - 0x14], 0x717598b2
xchg edx, edx
sub dword [ebp - 0x14], 0x15b86dd3
xor dword [ebp - 0x14], 0x85ef275c
mov ecx, dword [ebx + 0x54]
mov dword [esp - 0x2c], 0x156995a8
lea eax, [ebx + 0x50]
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], ecx
mov ebx, ebx
cmp ecx, 2
jbe 0x4383b1
mov eax, dword [eax]
xchg ecx, ecx
mov dword [ebp + 0x10], eax
lea eax, [ecx + 1]
mov edx, 0xeaf9a18
xchg ebx, ebx
add edx, 0x3f2a5673
sub edx, 0x15d2e84c
xor edx, 0x4efdf6dc
xor edx, 0x45b84002
mov dword [esp - 0x20], ebx
sub edx, 0x27f3e4a
xor edx, 0x30c38095
xor ecx, ecx
mul edx
mov dword [esp - 0x3c], 0x1727197e
seto cl
neg ecx
or ecx, eax
push ecx
mov dword [esp - 0x24], ebx
call fcn.0048b720
mov esi, eax
add esp, 4
mov dword [esp - 0x2c], 0x2d2ba11a
mov eax, dword [ebp + 0x14]
mov dword [ebp + 8], esi
test eax, eax
je 0x43848e
mov dword [esp - 0x20], edx
sub dword [ebp + 0x10], esi
mov edx, esi
mov ebx, dword [ebp + 0x10]
mov dword [esp - 0x38], 0x4f693e5b
xor edi, edi
mov esi, eax
mov ecx, edi
xchg esp, esp
lea edx, [edx + 2]
and ecx, 3
mov eax, 0x13375be1
mov dword [esp - 0x44], 0x18c5a049
add eax, 0x286b36e6
add eax, 0x24584fc9
xor eax, 0x1eb8a52e
add eax, 0x323bdc82
mov dword [esp - 0x14], 0x77a2b7d4
shl ecx, 3
inc edi
sar eax, cl
xchg ebx, ebx
cbw
xor ax, word [ebx + edx - 2]
mov word [edx - 2], ax
cmp edi, esi
xchg esi, esi
jb 0x43842f
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp + 8]
mov dword [esp - 0x1c], esp
mov eax, dword [ebp + 0x14]
lea edi, [ebx + 0xa8]
xor ecx, ecx
mov dword [esp - 0x3c], ecx
push ecx
mov word [esi + eax*2], cx
push dword [ebx + 0x1c]
mov dword [esp - 0x44], edx
mov eax, dword [ebp + 0xc]
push ecx
push ecx
push dword [eax + 4]
mov edx, edx
push dword [eax]
mov eax, dword [0x4baca0]
push dword [ebp - 0x14]
xor eax, dword [0x4ba958]
mov dword [esp - 0x40], edx
push dword [ebp - 0x18]
sub esp, 4
mov dword [esp], 0x75de51fe
xchg esp, esp
sub dword [esp], 0x26c0b8
xor dword [esp], 0x4577cb26
sub dword [esp], 0xaa0dd25
xchg edx, edx
sub dword [esp], 0x11f19494
xor dword [esp], 0x942fe8a7
push ecx
push esi
mov dword [esp - 0x40], 0x466eaafb
nop
mov dword [esp - 4], 0x10b6c556
add dword [esp - 4], 0x2501f1cf
mov dword [esp - 0x20], 0x318756ca
xor dword [esp - 4], 0x4d423755
xor dword [esp - 4], 0x71529653
sub dword [esp - 4], 0xfea4e
mov dword [esp - 0x38], edi
xor dword [esp - 4], 0x9902bd5
sub esp, 4
call eax
push esi
xchg esp, esp
mov dword [ebp + 0x14], eax
call fcn.0048b6f0
add esp, 4
cmp dword [ebp + 0x14], 0
mov dword [esp - 0x44], 0x15616f5f
jne 0x43856f
mov eax, dword [ebp - 4]
cmp dword [ebx + 0x98], eax
mov dword [ebp + 0xc], eax
mov dword [esp - 0x14], esi
jmp 0x438761
mov esi, dword [ebp - 4]
mov ecx, ebx
push esi
call fcn.00437ea0
xchg edx, edx
jmp 0x4386fa
cmp eax, 2
jne 0x4386fa
lea eax, [ebp - 0x28]
push eax
xchg edi, edi
mov eax, dword [0x4bad08]
push dword [ebx + 0x18]
xor eax, dword [0x4ba958]
call eax
mov dword [esp - 0x3c], edx
cmp dword [ebp + 0x10], 1
jne 0x4385e1
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x20]
mov ebp, ebp
sub eax, dword [ecx]
sub eax, dword [ebp - 0x28]
cdq
sub eax, edx
mov esi, esi
sar eax, 1
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
mov esp, esp
sub eax, dword [ecx + 4]
sub eax, dword [ebp - 0x24]
cdq
sub eax, edx
mov dword [esp - 0xc], 0x1a9bc2d2
sar eax, 1
mov dword [ebp - 0x14], eax
jmp 0x4386a7
mov ecx, dword [ebx + 0x64]
mov eax, dword [ebx + 0x60]
mov dword [esp - 0x24], 0xdb4f6f2
mov eax, dword [eax + ecx*4 - 8]
mov dword [ebp + 0x10], eax
cmp eax, dword [ebx + 0xa0]
je 0x438636
mov dword [esp - 0x24], esp
lea ecx, [ebp - 0x10]
push ecx
mov ecx, eax
call fcn.0045b460
mov edx, edx
mov ecx, dword [ebp + 0x10]
mov eax, dword [eax]
add eax, 0x50
mov dword [ebp - 0x18], eax
xchg esp, esp
lea eax, [ebp - 0x10]
push eax
call fcn.0045b460
mov dword [esp - 0x18], esp
mov eax, dword [eax + 4]
add eax, 0x28
mov dword [ebp - 0x14], eax
mov ebx, ebx
jmp 0x4386a7
mov dword [ebp - 0x18], 0x1098f309
add dword [ebp - 0x18], 0x1c4a8571
xor dword [ebp - 0x18], 0x3823273e
mov dword [esp - 0x38], edx
xor dword [ebp - 0x18], 0x306f6278
add dword [ebp - 0x18], 0x335547c4
sub dword [ebp - 0x18], 0x580484ec
mov dword [esp - 0xc], 0x7c95660d
mov dword [ebp - 0x14], 0x59dbf495
sub dword [ebp - 0x14], 0x428804d5
add dword [ebp - 0x14], 0x3c1e2a4
xchg edi, edi
add dword [ebp - 0x14], 0x4a67ffa7
sub dword [ebp - 0x14], 0x65093de9
add dword [ebp - 0x14], 0x32707376
xor dword [ebp - 0x14], 0x32e507b0
mov dword [esp - 0x3c], 0x30f40e9a
mov ecx, 0xe2aa9cf
add ecx, 0x1ebc4e39
add ecx, 0x2e60d4b5
mov dword [esp - 0x18], 0xb988cc
xor ecx, 0x25ea3d8e
sub ecx, 0x7ce655fc
add ecx, 0x105407f2
mov dword [esp - 0x24], edi
sub ecx, 0x121ba2c5
mov eax, ebx
mov eax, dword [eax + ecx]
xchg ecx, ecx
mov ecx, esi
dec eax
push eax
call fcn.0045c5c0
xchg esp, esp
push esi
mov ecx, ebx
call fcn.00438c20
mov dword [esp - 0x1c], ebp
mov eax, dword [esi]
lea ecx, [ebp - 0x18]
push ecx
xchg edx, edx
mov ecx, esi
call dword [eax + 0x1c]
mov eax, dword [esi]
mov dword [esp - 0x20], 0x3e615999
mov ecx, esi
push dword [ebp + 0xc]
call dword [eax + 0x20]
mov eax, dword [ebx + 0x10]
mov dword [esp - 0x44], ecx
cmp eax, 1
jne 0x4389e0
push dword [ebp + 0x14]
mov ecx, ebx
xchg ebp, ebp
push esi
call fcn.00438a40
test al, al
jne 0x438830
xchg edi, edi
mov eax, dword [0x4baca8]
push dword [ebp + 0x14]
xor eax, dword [0x4ba958]
mov dword [esp - 0x44], 0x59f72e53
call eax
cmp dword [ebx + 0x98], esi
mov dword [ebp + 0xc], esi
jne 0x43879f
mov ebx, ebx
mov dword [ebx + 0x98], 0x79974ead
sub dword [ebx + 0x98], 0x44840af7
sub dword [ebx + 0x98], 0x2e7d8e41
mov dword [esp - 0x20], 0x19202fdc
xor dword [ebx + 0x98], 0x2763b312
sub dword [ebx + 0x98], 0x21f60667
lea eax, [ebp + 0xc]
xchg ebp, ebp
push eax
lea ecx, [ebx + 0x60]
call fcn.004370b0
mov ebx, ebx
cmp dword [ebx + 0x10], 1
jne 0x4387c8
lea eax, [ebp + 0xc]
mov edi, edi
push eax
lea ecx, [ebx + 0x88]
call fcn.00437170
xchg esp, esp
mov ecx, dword [ebx + 0xa0]
test ecx, ecx
je 0x4387dc
xchg esi, esi
push dword [ebp + 0xc]
call fcn.0045cc00
mov ecx, dword [ebp + 0xc]
mov dword [esp - 0x18], 0xb51bd56
test ecx, ecx
je 0x438829
mov eax, dword [ecx]
nop
xchg ecx, ecx
sub esp, 4
mov dword [esp], 0x15e8692e
xor dword [esp], 0x45f95fc
sub dword [esp], 0xdd45d40
xchg esp, esp
add dword [esp], 0x6d8a5558
xor dword [esp], 0x716c9854
xor dword [esp], 0x16cbf
mov dword [esp - 0x2c], 0x76965be6
call dword [eax]
xor esi, esi
jmp 0x438a19
mov eax, dword [0x4bad30]
mov ebx, dword [ebp + 0x14]
xor eax, dword [0x4ba958]
nop
mov dword [esp - 0x10], 0x399f88c1
sub esp, 4
mov dword [esp], 0xeae0ef9
xor dword [esp], 0x219c39e5
xor dword [esp], 0x37ceb265
xchg esp, esp
add dword [esp], 0x62f8f303
sub dword [esp], 0x7bf5787a
nop
mov dword [esp - 4], 0x4d20040
xchg ebp, ebp
add dword [esp - 4], 0x750e07c6
xor dword [esp - 4], 0x790a04f2
add dword [esp - 4], 0x72baf42
mov edx, edx
sub dword [esp - 4], 0x815bb37
sub esp, 4
nop
mov ebx, ebx
mov dword [esp - 4], 0x12ab9d00
xor dword [esp - 4], 0x23246095
sub dword [esp - 4], 0x2adf4da
sub dword [esp - 4], 0x2457718d
mov dword [esp - 0x3c], 0x3eeab637
add dword [esp - 4], 0x6eaa90e9
sub dword [esp - 4], 0x2c9afca4
sub dword [esp - 4], 0x4c9a2b73
mov dword [esp - 0x18], ebp
sub esp, 4
push ebx
call eax
mov ecx, dword [ebp + 0xc]
xchg edx, edx
mov dword [ebp - 0x28], 0x20c6f6f2
xor dword [ebp - 0x28], 0x30167a34
xor dword [ebp - 0x28], 0x1ad864d2
add dword [ebp - 0x28], 0x30d9d8f7
mov esp, esp
add dword [ebp - 0x28], 0x41625367
sub dword [ebp - 0x28], 0x187eac95
sub dword [ebp - 0x28], 0x63c667dd
mov dword [ebp - 0x24], 0x3f959f56
mov dword [esp - 0x40], 0x66a2ac86
xor dword [ebp - 0x24], 0x211968a5
sub dword [ebp - 0x24], 0x17f3532f
add dword [ebp - 0x24], 0x1dc1d7a0
add dword [ebp - 0x24], 0x38c294ff
mov ebp, ebp
xor dword [ebp - 0x24], 0x65d7c53c
xor dword [ebp - 0x24], 0x38c9d45f
mov eax, dword [ecx]
mov dword [ebp - 0x20], eax
xchg ebx, ebx
mov eax, dword [ecx + 4]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x28]
push eax
mov edx, edx
mov eax, dword [0x4baff8]
xor eax, dword [0x4ba958]
push ebx
call eax
mov esp, esp
mov eax, dword [0x4bad38]
xor eax, dword [0x4ba958]
push ebx
mov dword [esp - 0xc], ebp
call eax
mov eax, dword [0x4bad40]
xor eax, dword [0x4ba958]
nop
mov dword [esp - 0x1c], ebx
sub esp, 4
mov dword [esp], 0x571a8841
add dword [esp], 0x202aa72e
sub dword [esp], 0x571c1021
xchg ebp, ebp
xor dword [esp], 0x62ea7186
sub dword [esp], 0xd7885a6
sub dword [esp], 0x354ae91d
mov dword [esp - 0x28], 0x4bf8acb8
push ebx
call eax
jmp 0x438a19
cmp eax, 2
jne 0x438a19
mov ecx, dword [ebx + 0x58]
test ecx, ecx
mov ecx, ecx
je 0x4389fe
mov eax, dword [esi]
push ecx
mov dword [esp - 0x10], 0x1ed63
mov ecx, esi
call dword [eax + 0x10]
mov eax, dword [esi]
mov dword [esp - 0x14], edx
mov ecx, esi
call dword [eax + 0x18]
mov ecx, dword [ebx + 0xa0]
push esi
mov dword [esp - 0x38], edi
call fcn.0045ca70
mov ecx, dword [0x4baac0]
xor ecx, dword [0x4ba958]
xchg esi, esi
push edi
call ecx
pop edi
mov eax, esi
mov dword [esp - 0x20], 0x3b6247c2
pop esi
pop ebx
mov esp, ebp
mov ecx, ecx
pop ebp
ret 0x10