Function at 0x437930
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov dword [esp - 0x18], 0x1383ac5
mov ebx, ecx
mov dword [ebp - 0x10], ebx
mov ecx, dword [ebx + 0xc0]
test ecx, ecx
mov dword [esp - 0x20], esi
je 0x4379d1
dec dword [ecx + 4]
cmp dword [ecx + 4], 0
jg 0x43799d
mov dword [esp - 0x2c], esp
mov eax, dword [ecx]
nop
mov dword [esp - 4], 0x3ad9846b
mov dword [esp - 0x24], ebp
sub dword [esp - 4], 0x1c16949e
sub dword [esp - 4], 0x178c066a
add dword [esp - 4], 0x416b27f4
mov dword [esp - 0x28], 0x16936b4a
sub dword [esp - 4], 0x48a21156
sub esp, 4
call dword [eax]
xchg edx, edx
mov dword [ebx + 0xc0], 0x618e0e91
xor dword [ebx + 0xc0], 0x35368b28
sub dword [ebx + 0xc0], 0x310208c8
xor dword [ebx + 0xc0], 0x3516daa1
mov esi, esi
sub dword [ebx + 0xc0], 0x16a0a650
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x437a2d
xchg esp, esp
push eax
mov eax, dword [0x4bae48]
xor eax, dword [0x4ba958]
nop
mov dword [esp - 0x18], 0x31df49c3
mov dword [esp - 4], 0x4b70ff14
add dword [esp - 4], 0x2f24e161
xor dword [esp - 4], 0x8dc5b23
mov dword [esp - 0x34], edx
xor dword [esp - 4], 0x1e7873f7
xor dword [esp - 4], 0x58cae418
sub dword [esp - 4], 0x34fb2cbd
sub esp, 4
xchg esi, esi
push dword [ebx + 0x18]
call eax
mov eax, dword [0x4baab8]
mov edi, edi
xor eax, dword [0x4ba958]
push esi
push edi
mov edx, edx
lea edi, [ebx + 0xa8]
push edi
call eax
mov edx, edx
mov eax, dword [ebx + 0x64]
mov esi, dword [ebx + 0x60]
test eax, eax
je 0x437ab1
mov esi, esi
lea eax, [esi + eax*4]
mov dword [ebp - 8], eax
cmp esi, eax
je 0x437ab1
mov ebp, ebp
mov ecx, dword [esi]
test ecx, ecx
je 0x437aa6
mov eax, dword [ecx]
mov esp, esp
nop
sub esp, 4
mov dword [esp], 0x3ffe3a7
mov dword [esp - 0x44], ecx
add dword [esp], 0x36a0dea0
add dword [esp], 0x2c3d1692
xor dword [esp], 0x6b523f80
add dword [esp], 0x3acb1ff5
mov dword [esp - 0x3c], ebp
xor dword [esp], 0x485b074f
call dword [eax]
mov eax, dword [ebp - 8]
add esi, 4
mov dword [esp - 0x24], ebp
cmp esi, eax
jne 0x437a61
mov eax, dword [ebx + 0x8c]
mov esi, dword [ebx + 0x88]
mov dword [esp - 0x20], esp
test eax, eax
je 0x437b44
lea eax, [esi + eax*4]
cmp esi, eax
mov dword [esp - 0x28], edx
je 0x437b44
mov edi, eax
mov eax, dword [esi]
mov dword [ebp - 8], eax
mov ebp, ebp
test eax, eax
je 0x437b31
mov ecx, eax
call fcn.00459180
mov dword [esp - 0x14], 0x5c5da77e
nop
mov dword [esp - 4], 0x4fe9e4c7
add dword [esp - 4], 0x1bfb2e52
xchg ebx, ebx
sub dword [esp - 4], 0x2cf98973
add dword [esp - 4], 0x23d5f673
add dword [esp - 4], 0x47ffe62
xchg ebp, ebp
xor dword [esp - 4], 0x67416fdf
sub esp, 4
push dword [ebp - 8]
xchg esi, esi
call fcn.0048b700
add esp, 8
add esi, 4
mov dword [esp - 0x40], ebp
cmp esi, edi
jne 0x437ad2
lea edi, [ebx + 0xa8]
mov edi, edi
mov ecx, dword [ebx + 0x5c]
test ecx, ecx
je 0x437b81
mov eax, dword [ecx]
mov edi, edi
nop
mov dword [esp - 4], 0x47711b6d
xor dword [esp - 4], 0x78840543
mov esi, esi
xor dword [esp - 4], 0x349efc53
add dword [esp - 4], 0x5335fecb
xor dword [esp - 4], 0x5ea1e149
sub esp, 4
xchg ebx, ebx
call dword [eax]
cmp dword [ebx + 0x10], 1
jne 0x437cc0
cmp dword [ebx + 0x54], 0
mov dword [esp - 0x1c], edi
je 0x437cc0
mov ecx, dword [ebx + 0x54]
lea eax, [ebx + 0x50]
mov dword [ebp - 4], eax
xchg ebx, ebx
mov dword [ebp - 8], ecx
cmp ecx, 2
jbe 0x437bb3
mov eax, dword [eax]
xchg edx, edx
mov dword [ebp - 4], eax
lea eax, [ecx + 1]
mov edx, 0x2a52ca08
mov ecx, ecx
xor edx, 0x518a43a1
xor edx, 0xc97d6d7
add edx, 0x698378e
mov dword [esp - 0x34], 0x6c80783f
xor edx, 0x19614c70
sub edx, 0x465a8e08
xor edx, 0x1e2c4d76
mov esi, esi
xor ecx, ecx
mul edx
seto cl
neg ecx
mov dword [esp - 0x44], 0x49ba3bf9
or ecx, eax
push ecx
call fcn.0048b720
mov esi, eax
xchg ebp, ebp
add esp, 4
mov eax, dword [ebp - 8]
mov dword [ebp - 0xc], esi
mov dword [esp - 0x34], 0x1b2d42b
test eax, eax
je 0x437c92
sub dword [ebp - 4], esi
mov edx, edx
mov edx, esi
mov ebx, dword [ebp - 4]
xor edi, edi
mov dword [esp - 0x18], 0x3e3e79e5
mov esi, eax
lea ebx, [ebx]
mov ecx, edi
mov dword [esp - 0x2c], 0x735afd8
lea edx, [edx + 2]
and ecx, 3
mov eax, 0x6437f128
mov dword [esp - 0x44], ebx
sub eax, 0x52f03560
xor eax, 0x5f38feb5
xor eax, 0xb2723fd
mov edx, edx
add eax, 0x2e25bdc0
shl ecx, 3
inc edi
sar eax, cl
xchg edi, edi
cbw
xor ax, word [ebx + edx - 2]
mov word [edx - 2], ax
cmp edi, esi
mov esp, esp
jb 0x437c39
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov ecx, ecx
mov eax, dword [ebp - 8]
lea edi, [ebx + 0xa8]
xor ecx, ecx
mov dword [esp - 0x38], esp
mov word [esi + eax*2], cx
push dword [ebx + 0x1c]
mov eax, dword [0x4bacc0]
mov dword [esp - 0x28], 0x5527c931
xor eax, dword [0x4ba958]
push esi
call eax
push esi
xchg esp, esp
call fcn.0048b6f0
add esp, 4
mov eax, dword [0x4baac0]
xor eax, dword [0x4ba958]
mov dword [esp - 0x10], 0x6c14e67f
push edi
call eax
mov ecx, dword [ebx + 0xc4]
mov dword [esp - 0x40], 0x5a0a8fa7
test ecx, ecx
je 0x437d37
mov eax, dword [ecx]
nop
mov dword [esp - 0x30], esi
mov dword [esp - 4], 0x443fe58d
add dword [esp - 4], 0x13312a6e
add dword [esp - 4], 0x1be90fc7
mov dword [esp - 0x40], 0x3b40e242
xor dword [esp - 4], 0x106b1850
sub dword [esp - 4], 0xc0923e8
sub dword [esp - 4], 0x4f9f61a6
xor dword [esp - 4], 0x7888205
xchg ebp, ebp
sub esp, 4
call dword [eax + 8]
mov eax, dword [0x4baab0]
xor eax, dword [0x4ba958]
mov dword [esp - 0x2c], 0xf4dd6d0
push edi
call eax
mov eax, dword [ebx + 0x88]
pop edi
mov edi, edi
pop esi
test eax, eax
je 0x437dbe
push eax
mov dword [esp - 0x2c], 0x40d03ff6
call fcn.0048b6f0
add esp, 4
mov dword [ebx + 0x88], 0x28d01a01
mov dword [esp - 0x30], ebp
add dword [ebx + 0x88], 0x4e637c0d
sub dword [ebx + 0x88], 0x624452d2
add dword [ebx + 0x88], 0x67a5b410
mov dword [esp - 0x30], 0x53f59f5
sub dword [ebx + 0x88], 0x7225a281
add dword [ebx + 0x88], 0x22552e1e
sub dword [ebx + 0x88], 0x2cc482e9
cmp dword [ebx + 0x84], 2
xchg esi, esi
jbe 0x437dd9
push dword [ebx + 0x80]
call fcn.0048b6f0
add esp, 4
xchg ebp, ebp
cmp dword [ebx + 0x7c], 2
jbe 0x437df2
push dword [ebx + 0x78]
mov dword [esp - 0x3c], 0x4822234f
call fcn.0048b6f0
add esp, 4
cmp dword [ebx + 0x74], 2
jbe 0x437e05
xchg ebx, ebx
push dword [ebx + 0x70]
call fcn.0048b6f0
add esp, 4
mov eax, dword [ebx + 0x60]
mov edi, edi
test eax, eax
je 0x437e4d
push eax
xchg ecx, ecx
call fcn.0048b6f0
add esp, 4
mov dword [ebx + 0x60], 0x1ff80b9b
mov ecx, ecx
add dword [ebx + 0x60], 0x19dea031
add dword [ebx + 0x60], 0x214e79ee
add dword [ebx + 0x60], 0x7023933
mov dword [esp - 0x14], 0x45012eb6
xor dword [ebx + 0x60], 0x3f2d1a07
sub dword [ebx + 0x60], 0x5d0a44ea
cmp dword [ebx + 0x54], 2
mov ebx, ebx
jbe 0x437e62
push dword [ebx + 0x50]
call fcn.0048b6f0
mov ebp, ebp
add esp, 4
mov ecx, ebx
call fcn.00438ee0
pop ebx
mov dword [esp - 0x40], 0x16817d71
mov esp, ebp
pop ebp
ret