Function at 0x732a1c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x22
push 0
push 0
dec ecx
jne 0x732a25
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0xb8], ecx
mov esi, edx
mov ebx, eax
lea eax, [ebp - 0xa8]
mov edx, dword [0x73054c]
call fcn.00408b60
xor eax, eax
push ebp
push 0x7336ca
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0xa8]
xor ecx, ecx
mov edx, 0xa8
call fcn.00404d90
mov dword [ebp - 0xe8], 0xffffffff
mov dword [ebp - 0xe4], 0xffffffff
mov dword [ebp - 0xf0], 0xffffffff
mov dword [ebp - 0xec], 0xffffffff
mov dword [ebp - 0xa8], esi
cmp dword [ebp - 0xb8], 0
je 0x732ac4
mov eax, dword [ebp - 0xb8]
cmp byte [eax + 0x4e], 2
jne 0x732ac4
mov dl, 1
mov eax, dword [0x85ef34]
call fcn.008730d8
mov dword [ebp - 0xa4], eax
jmp 0x732ad0
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xa4], eax
push 0x2000
mov eax, dword [0x8e6fcc]
movzx eax, byte [eax]
push eax
mov ecx, ebx
mov dl, 1
mov eax, dword [0x865f2c]
call fcn.0088cc10
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 0xc]
mov esi, eax
lea edi, [ebp - 0xa0]
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
mov byte [ebp - 0x5f], 1
mov dword [ebp - 0x4c], 1
mov dword [ebp - 0x58], 1
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 0xbff00000
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xbff00000
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], 0x3ff00000
push 0
push 0x80
mov dl, 1
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea eax, [ebp - 0xac]
xor ecx, ecx
mov edx, 4
call fcn.00407630
lea eax, [ebp - 0xac]
xor edx, edx
call fcn.00406e48
lea eax, [ebp - 0xac]
call fcn.00407434
mov edx, eax
mov ecx, 4
mov eax, dword [ebp - 0x70]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xac]
mov edx, 0x7336e8
call fcn.00407338
je 0x732bc1
push 0xffffffffffffffff
push 0xffffff7c
mov dl, 1
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov byte [ebp - 0x60], 1
jmp 0x7335a2
mov byte [ebp - 0x60], 0
jmp 0x7335a2
lea eax, [ebp - 0xa8]
xor edx, edx
call fcn.007307f8
mov esi, eax
lea eax, [ebp - 0xa8]
xor edx, edx
call fcn.007307f8
mov word [ebp - 0xba], ax
cmp si, 2
je 0x732c15
cmp byte [ebp - 0x5f], 0
jne 0x732c15
mov eax, esi
call fcn.00868a3c
mov esi, eax
movzx eax, word [ebp - 0xba]
call fcn.00868a3c
mov word [ebp - 0xba], ax
lea eax, [ebp - 0xb4]
mov edx, 0x8c963c
mov ecx, 0
call fcn.00406f84
mov dword [ebp - 0xc0], 0x9dd
mov ebx, 0x8c4758
cmp si, word [ebx]
jne 0x732c60
movzx eax, word [ebx + 2]
cmp ax, word [ebp - 0xba]
jne 0x732c60
lea eax, [ebp - 0xb4]
lea edx, [ebx + 4]
mov ecx, 0
call fcn.00406f84
jmp 0x732c6b
add ebx, 8
dec dword [ebp - 0xc0]
jne 0x732c39
lea eax, [ebp - 0xb0]
xor ecx, ecx
mov edx, 2
call fcn.00407630
lea eax, [ebp - 0xb0]
xor edx, edx
call fcn.00406e48
lea eax, [ebp - 0xb0]
call fcn.00407434
mov edx, eax
mov ecx, 2
mov eax, dword [ebp - 0x70]
mov ebx, dword [eax]
call dword [ebx + 0xc]
cmp si, 2
je 0x732ce5
lea eax, [ebp - 0xb0]
xor edx, edx
call fcn.00406e48
movzx eax, byte [eax]
call fcn.007307d0
test al, al
je 0x732da3
lea eax, [ebp - 0xb0]
xor edx, edx
call fcn.00406e48
movzx eax, byte [eax + 1]
call fcn.007307d0
test al, al
je 0x732da3
mov eax, dword [ebp - 0xb4]
mov edx, 0x7336fc
call fcn.00407338
jne 0x732d08
lea eax, [ebp - 0xb4]
mov edx, dword [ebp - 0xb0]
call fcn.00406ccc
mov eax, dword [ebp - 0xb4]
mov edx, 0x73370c
call fcn.00407338
jne 0x732d37
push 0xffffffffffffffff
push 0xfffffffffffffffe
mov dl, 1
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 0xc8], 4
jmp 0x732dbb
mov dword [ebp - 0xc8], 2
mov eax, dword [ebp - 0xb0]
mov edx, 0x73371c
call fcn.00407338
je 0x732d89
mov eax, dword [ebp - 0xb0]
mov edx, 0x73372c
call fcn.00407338
je 0x732d89
mov eax, dword [ebp - 0xb0]
mov edx, 0x73373c
call fcn.00407338
je 0x732d89
mov eax, dword [ebp - 0xb0]
mov edx, 0x73374c
call fcn.00407338
jne 0x732dbb
push 0
push 2
mov dl, 1
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 0xc8], 4
jmp 0x732dbb
push 0xffffffffffffffff
push 0xfffffffffffffffe
mov dl, 1
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 0xc8], 4
xor eax, eax
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xc8], 1
jne 0x732de2
lea eax, [ebp - 0xa8]
call fcn.007307e0
movzx eax, al
mov dword [ebp - 0xcc], eax
jmp 0x732e3f
cmp dword [ebp - 0xc8], 2
jne 0x732e13
cmp si, 2
je 0x732df7
cmp byte [ebp - 0x5f], 0
je 0x732dfb
xor edx, edx
jmp 0x732dfd
mov dl, 1
lea eax, [ebp - 0xa8]
call fcn.007307f8
movzx eax, ax
mov dword [ebp - 0xcc], eax
jmp 0x732e3f
cmp dword [ebp - 0xc8], 4
jne 0x732e3f
cmp si, 2
je 0x732e28
cmp byte [ebp - 0x5f], 0
je 0x732e2c
xor edx, edx
jmp 0x732e2e
mov dl, 1
lea eax, [ebp - 0xa8]
call fcn.00730828
mov dword [ebp - 0xcc], eax
xor eax, eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xd4], 1
cmp dword [ebp - 0xcc], 0
jle 0x732f0d
mov eax, dword [ebp - 0xb4]
mov edx, 0x73375c
call fcn.00407338
je 0x732e82
mov eax, dword [ebp - 0xb4]
mov edx, 0x73376c
call fcn.00407338
jne 0x732e8e
mov dword [ebp - 0xd0], 2
jmp 0x732ef8
mov eax, dword [ebp - 0xb4]
mov edx, 0x73377c
call fcn.00407338
je 0x732ec4
mov eax, dword [ebp - 0xb4]
mov edx, 0x73378c
call fcn.00407338
je 0x732ec4
mov eax, dword [ebp - 0xb4]
mov edx, 0x73379c
call fcn.00407338
jne 0x732ed0
mov dword [ebp - 0xd0], 4
jmp 0x732ef8
mov eax, dword [ebp - 0xb4]
mov edx, 0x7337ac
call fcn.00407338
je 0x732eee
mov dword [ebp - 0xd0], 1
jmp 0x732ef8
mov dword [ebp - 0xd0], 8
mov eax, dword [ebp - 0xcc]
cdq
idiv dword [ebp - 0xd0]
mov dword [ebp - 0xd4], eax
jmp 0x732f26
cmp dword [ebp - 0xcc], 0
jge 0x732f26
xor eax, eax
mov dword [ebp - 0xd0], eax
xor eax, eax
mov dword [ebp - 0xd4], eax
cmp si, 0x7fe0
jne 0x732fbf
cmp word [ebp - 0xba], 0x10
jne 0x732fbf
lea edx, [ebp - 0xde]
mov ecx, 2
mov eax, dword [ebp - 0x70]
mov ebx, dword [eax]
call dword [ebx + 0xc]
lea edx, [ebp - 0xe0]
mov ecx, 2
mov eax, dword [ebp - 0x70]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push 0xffffffffffffffff
push 0xfffffffffffffffc
mov dl, 1
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x18]
cmp word [ebp - 0xde], 0xd8ff
jne 0x732f9f
cmp word [ebp - 0xe0], 0xe0ff
jne 0x732f9f
mov eax, dword [ebp - 0x70]
call fcn.00440538
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], edx
jmp 0x732fbf
mov eax, dword [ebp - 0x70]
call fcn.00440538
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], edx
push ebp
call fcn.007329cc
pop ecx
jmp 0x7335c0
xor eax, eax
mov dword [ebp - 0xd8], eax
xor eax, eax
mov dword [ebp - 0xdc], eax
cmp dword [ebp - 0xcc], 0
jle 0x7330e3
mov eax, dword [ebp - 0xcc]
cdq
cmp edx, dword [ebp - 0x64]
jne 0x732ff3
cmp eax, dword [ebp - 0x68]
jae 0x7330e3
jmp 0x732ff9
jge 0x7330e3
cmp dword [ebp - 0xd4], 1
jne 0x7330a7
mov eax, dword [ebp - 0xd0]
dec eax
je 0x73301c
dec eax
je 0x733040
sub eax, 2
je 0x733076
jmp 0x7330a7
lea eax, [ebp - 0xa8]
call fcn.007307e0
movzx eax, al
mov dword [ebp - 0xdc], eax
push 0xffffffffffffffff
push 0xffffffffffffffff
mov dl, 1
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x18]
jmp 0x7330a7
cmp si, 2
je 0x73304c
cmp byte [ebp - 0x5f], 0
je 0x733050
xor edx, edx
jmp 0x733052
mov dl, 1
lea eax, [ebp - 0xa8]
call fcn.007307f8
movzx eax, ax
mov dword [ebp - 0xdc], eax
push 0xffffffffffffffff
push 0xfffffffffffffffe
mov dl, 1
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x18]
jmp 0x7330a7
cmp si, 2
je 0x733082
cmp byte [ebp - 0x5f], 0
je 0x733086
xor edx, edx
jmp 0x733088
mov dl, 1
lea eax, [ebp - 0xa8]
call fcn.00730828
mov dword [ebp - 0xdc], eax
push 0xffffffffffffffff
push 0xfffffffffffffffc
mov dl, 1
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp - 0xcc]
inc eax
call fcn.00404360
mov dword [ebp - 0xd8], eax
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0x70]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xd0]
imul dword [ebp - 0xd4]
mov edx, dword [ebp - 0xd8]
mov byte [edx + eax], 0
mov eax, dword [ebp - 0xb4]
push eax
mov eax, dword [ebp - 0xd8]
push eax
mov eax, dword [ebp - 0xcc]
push eax
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x144]
movzx ecx, word [ebp - 0xba]
mov edx, esi
call fcn.0088e380
sub si, 2
je 0x733123
sub si, 0x26
je 0x73316f
jmp 0x7335a2
movzx eax, word [ebp - 0xba]
sub ax, 0x10
jne 0x7335a2
lea edx, [ebp - 0xf8]
mov eax, dword [ebp - 0xd8]
call fcn.00418648
mov edx, dword [ebp - 0xf8]
lea eax, [ebp - 0x5c]
call fcn.00406ccc
mov eax, dword [ebp - 0x5c]
mov edx, 0x7337bc
call fcn.00407338
jne 0x7335a2
mov byte [ebp - 0x5f], 0
jmp 0x7335a2
movzx eax, word [ebp - 0xba]
cmp eax, 0x103
jg 0x7331d7
je 0x733354
cmp eax, 0x10
jg 0x7331b7
je 0x7332aa
sub eax, 2
je 0x73322b
sub eax, 2
je 0x733239
sub eax, 2
je 0x73325d
sub eax, 2
je 0x73326b
jmp 0x7335a2
sub eax, 0x11
je 0x7332b8
sub eax, 0xef
je 0x7332c6
dec eax
je 0x73330d
jmp 0x7335a2
cmp eax, 0x1201
jg 0x733209
je 0x733431
sub eax, 0x1050
je 0x733362
dec eax
je 0x7333ad
dec eax
je 0x7333d9
dec eax
je 0x733405
jmp 0x7335a2
sub eax, 0x1202
je 0x7334ad
dec eax
je 0x733526
sub eax, 0x1e03
je 0x73359b
jmp 0x7335a2
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x58], eax
jmp 0x7335a2
lea edx, [ebp - 0xfc]
mov eax, dword [ebp - 0xd8]
call fcn.00418648
mov edx, dword [ebp - 0xfc]
lea eax, [ebp - 0x54]
call fcn.00406ccc
jmp 0x7335a2
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x50], eax
jmp 0x7335a2
lea eax, [ebp - 0x104]
mov edx, dword [ebp - 0xd8]
mov ecx, 0
call fcn.00406f10
mov eax, dword [ebp - 0x104]
lea edx, [ebp - 0x100]
call fcn.0088f2c8
mov eax, dword [ebp - 0x100]
mov edx, 1
call fcn.0088f59c
mov dword [ebp - 0x4c], eax
jmp 0x7335a2
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x40], eax
jmp 0x7335a2
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x44], eax
jmp 0x7335a2
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x3c], eax
mov ecx, 8
mov edx, dword [ebp - 0x3c]
mov eax, 1
call fcn.00868614
mov dword [ebp - 0xc0], eax
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x34]
call fcn.00805a14
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x38], 0
jne 0x7335a2
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x38], eax
jmp 0x7335a2
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x38], eax
mov ecx, 8
mov edx, dword [ebp - 0x38]
mov eax, 1
call fcn.00868614
mov dword [ebp - 0xc0], eax
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x34]
call fcn.00805a14
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x3c], 0
jne 0x7335a2
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x3c], eax
jmp 0x7335a2
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x48], eax
jmp 0x7335a2
push 0xbff00000
push 0
lea edx, [ebp - 0x108]
mov eax, dword [ebp - 0xd8]
call fcn.00418648
mov eax, dword [ebp - 0x108]
call fcn.007326f0
fstp qword [ebp - 0x20]
wait
fld qword [ebp - 0x20]
fcomp dword [0x7337d0]
wait
fnstsw ax
sahf
jne 0x7335a2
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 0xbff00000
jmp 0x7335a2
push 0xbff00000
push 0
lea edx, [ebp - 0x10c]
mov eax, dword [ebp - 0xd8]
call fcn.00418648
mov eax, dword [ebp - 0x10c]
call fcn.007326f0
fstp qword [ebp - 0x18]
wait
jmp 0x7335a2
push 0xbff00000
push 0
lea edx, [ebp - 0x110]
mov eax, dword [ebp - 0xd8]
call fcn.00418648
mov eax, dword [ebp - 0x110]
call fcn.007326f0
fstp qword [ebp - 0x10]
wait
jmp 0x7335a2
push 0xbff00000
push 0
lea edx, [ebp - 0x114]
mov eax, dword [ebp - 0xd8]
call fcn.00418648
mov eax, dword [ebp - 0x114]
call fcn.007326f0
fstp qword [ebp - 8]
wait
jmp 0x7335a2
mov ecx, dword [ebp - 0x3c]
mov eax, 1
shl eax, cl
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc4]
add eax, eax
call fcn.00404360
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0xc4]
dec eax
test eax, eax
jl 0x7335a2
inc eax
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xc0], 0
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xc0]
movzx eax, word [eax + edx*2]
movzx edx, byte [ebp - 0x5f]
xor dl, 1
call fcn.0088c9bc
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xc0]
mov word [edx + ecx*2], ax
inc dword [ebp - 0xc0]
dec dword [ebp - 0xf4]
jne 0x733471
jmp 0x7335a2
mov ecx, dword [ebp - 0x3c]
mov eax, 1
shl eax, cl
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc4]
add eax, eax
call fcn.00404360
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xc4]
dec eax
test eax, eax
jl 0x7335a2
inc eax
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xc0], 0
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xc0]
movzx eax, word [eax + edx*2]
movzx edx, byte [ebp - 0x5f]
xor dl, 1
call fcn.0088c9bc
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xc0]
mov word [edx + ecx*2], ax
inc dword [ebp - 0xc0]
dec dword [ebp - 0xf4]
jne 0x7334ed
jmp 0x7335a2
mov ecx, dword [ebp - 0x3c]
mov eax, 1
shl eax, cl
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc4]
add eax, eax
call fcn.00404360
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xc4]
dec eax
test eax, eax
jl 0x7335a2
inc eax
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xc0], 0
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xc0]
movzx eax, word [eax + edx*2]
movzx edx, byte [ebp - 0x5f]
xor dl, 1
call fcn.0088c9bc
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0xc0]
mov word [edx + ecx*2], ax
inc dword [ebp - 0xc0]
dec dword [ebp - 0xf4]
jne 0x733562
jmp 0x7335a2
cmp dword [ebp - 0xd8], 0
mov eax, dword [ebp - 0x70]
call fcn.00440538
cmp edx, dword [ebp - 0x64]
jne 0x7335ba
cmp eax, dword [ebp - 0x68]
jb 0x732bca
jmp 0x7335c0
jl 0x732bca
cmp dword [ebp - 0xec], 0xffffffff
jne 0x733603
cmp dword [ebp - 0xf0], 0xffffffff
jne 0x733603
cmp dword [ebp - 0xe4], 0xffffffff
jne 0x7335e6
cmp dword [ebp - 0xe8], 0xffffffff
jbe 0x733603
jmp 0x7335e8
jle 0x733603
push dword [ebp - 0xe4]
push dword [ebp - 0xe8]
mov eax, dword [ebp - 0x70]
call fcn.00440558
push ebp
call fcn.007329cc
pop ecx
mov ebx, dword [ebp - 0xa4]
cmp ebx, dword [ebp - 0xb8]
je 0x733645
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x10]
cmp al, 1
je 0x733629
mov dl, 5
mov eax, dword [ebp - 0xa4]
call fcn.00874524
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0xa4]
call fcn.00405858
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0xa8]
call fcn.007cf074
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x73365f
call fcn.0040437c
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x73366b
call fcn.0040437c
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x733677
call fcn.0040437c
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x733683
call fcn.0040437c
mov eax, dword [ebp - 0x70]
call fcn.00405858
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7336d1
lea eax, [ebp - 0x114]
mov edx, 8
call fcn.00406c40
lea eax, [ebp - 0xb4]
mov edx, 3
call fcn.00406c40
lea eax, [ebp - 0xa8]
mov edx, dword [0x73054c]
call fcn.00408c38
ret