Function at 0x409ac0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffcdc
mov eax, 0x4c71b0
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
call fcn.0049fef4
mov dword [ebp - 0x58], 0x5a
xor edx, edx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x60], 0x40f
mov ecx, dword [ebp - 0x60]
shl ecx, 2
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0x324], ecx
fild dword [ebp - 0x324]
fadd qword [0x40af14]
call fcn.004a6bd0
mov dword [ebp - 0x64], eax
shl dword [ebp - 0x64], 1
mov edx, dword [ebp - 0x60]
add edx, edx
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x68], edx
mov ecx, dword [ebp - 0x68]
add ecx, 0xfffffb50
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x6c]
add eax, 0x2ee0
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x70]
add ecx, 0x203a1
add edx, 0x145321
lea eax, [ecx + 0x145321]
mov dword [ebp - 0x74], eax
lea eax, [edx - 0x88b12a1]
shl eax, 2
shl ecx, 3
lea esi, [eax - 0x20bdd61]
inc esi
inc eax
sar esi, 1
add eax, 0xfffac2fb
add esi, 0xb22ea
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x7c], eax
mov eax, ecx
lea esi, [ecx + ecx*2]
add eax, eax
add esi, 0xfffaef13
add eax, 0xffbde61f
mov esi, 3
mov dword [ebp - 0x80], eax
mov eax, edx
add eax, eax
add edx, edx
add eax, 0x4219e1
add edx, 0xffbde61f
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x74]
add eax, eax
add eax, 0xffbde61f
mov dword [ebp - 0x88], eax
mov eax, ecx
add eax, eax
mov dword [ebp - 0x8c], edx
add eax, 0xfff96885
mov dword [ebp - 0x90], eax
mov eax, ecx
cdq
idiv esi
add dword [ebp - 0x90], eax
inc dword [ebp - 0x90]
lea eax, [ecx + ecx*2]
add eax, 0xffff8362
mov esi, 0x1e
mov dword [ebp - 0x94], eax
mov eax, ecx
cdq
idiv esi
add dword [ebp - 0x94], eax
inc dword [ebp - 0x94]
lea eax, [ecx + ecx*2]
add eax, 0xfff9b375
mov edx, ecx
test edx, edx
mov dword [ebp - 0x98], eax
jns 0x409c1b
add edx, 0x1f
sar edx, 5
add edx, 0xffffff92
add dword [ebp - 0x98], edx
inc dword [ebp - 0x98]
mov dword [ebx + 0x9ec], ecx
mov ecx, dword [ebx + 0x9ec]
inc ecx
sar ecx, 2
mov dword [ebx + 0x9f4], ecx
mov eax, dword [ebx + 0x9ec]
sub dword [ebx + 0x9f8], eax
cmp dword [ebx + 0xa04], 5
jle 0x409c5e
inc dword [ebx + 0xa0c]
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0xb0], ecx
mov word [ebp - 0xb2], 0
cmp dword [ebp + 0x24], 0xffffffff
jle 0x409c84
push ebx
call fcn.00428458
pop ecx
mov eax, dword [ebp + 0x10]
call fcn.0048c030
mov dword [ebp - 0xbc], eax
lea edx, [ebp - 0xc0]
mov ecx, 4
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
call dword [esi + 4]
mov eax, dword [ebp + 0x10]
lea edx, [ebp - 0xc4]
mov ecx, 4
mov esi, dword [eax]
call dword [esi + 4]
cmp dword [ebp - 0xc0], 0xffffffff
jne 0x409d46
cmp dword [ebp - 0xc4], 0xffffffff
jne 0x409d46
mov eax, dword [ebp + 0x10]
lea edx, [ebp - 0xc8]
mov ecx, 4
mov esi, dword [eax]
call dword [esi + 4]
mov eax, dword [ebp + 0x10]
lea edx, [ebp - 0xcc]
mov ecx, 4
mov esi, dword [eax]
call dword [esi + 4]
mov eax, dword [ebp + 0x10]
lea edx, [ebp - 0xd0]
mov ecx, 4
mov esi, dword [eax]
call dword [esi + 4]
mov eax, dword [ebp + 0x28]
push eax
mov edx, dword [ebp + 0x24]
push edx
mov ecx, dword [ebp - 0xc8]
push ecx
mov eax, dword [ebp - 0xcc]
push eax
mov edx, dword [ebp - 0xd0]
push edx
mov ecx, dword [ebp + 0x10]
push ecx
mov eax, dword [ebp + 0xc]
push eax
push ebx
call fcn.00403640
add esp, 0x20
mov edx, dword [ebp - 0x54]
mov dword fs:[0], edx
mov eax, edx
jmp 0x40af0b
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp + 0x10]
call fcn.0048c040
push ebx
call fcn.0040af50
pop ecx
mov edi, dword [ebp + 0x1c]
shl edi, 4
add edi, 0x1f
test edi, edi
jns 0x409d6b
add edi, 0x1f
sar edi, 5
shl edi, 2
imul edi, dword [ebp + 0x20]
add edi, 0x1400
sar edi, 1
jns 0x409d82
adc edi, 0
cmp dword [ebp + 0x14], 0x800
jle 0x409e7c
mov eax, dword [ebp + 0x14]
mov ecx, 5
cdq
idiv ecx
cmp edx, 4
jne 0x409e7c
mov eax, dword [ebx + 0x1df0]
add eax, 0xfffff831
mov dword [ebp - 0xd4], eax
push ebx
call fcn.004045a8
pop ecx
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd4]
add eax, 0xaa62e
mov ecx, 0x186a0
cdq
idiv ecx
mov dword [ebp - 0xd8], edx
mov eax, dword [ebp - 0xd8]
add eax, 0x7d6
mov dword [ebp - 0x324], eax
fild dword [ebp - 0x324]
fmul qword [0x40af1c]
fld xword [0x40af24]
fmulp st(1)
fstp dword [ebp - 0xdc]
fld dword [ebp - 0xdc]
call fcn.004a6bd0
mov dword [ebp - 0xd8], eax
fild dword [ebp - 0xd8]
fsubr dword [ebp - 0xdc]
mov eax, dword [ebp - 0xd8]
mov ecx, 5
cdq
idiv ecx
mov dword [ebp - 0x324], edx
fild dword [ebp - 0x324]
faddp st(1)
fstp dword [ebp - 0xdc]
mov eax, dword [ebp - 0xdc]
mov dword [ebx + 0x3e8], eax
fld dword [ebp - 0xdc]
fmul dword [ebp - 0xdc]
fmul dword [ebp - 0xdc]
fld dword [ebp - 0xdc]
fmul dword [ebp - 0xdc]
faddp st(1)
fadd dword [ebp - 0xdc]
fstp dword [ebx + 0x3ec]
add edi, edi
push edi
call fcn.0049f2bc
pop ecx
mov dword [ebp - 0xa0], eax
mov dl, 1
mov eax, dword [0x48919c]
call fcn.004035a8
mov dword [ebp - 0xe0], eax
mov dl, 1
mov eax, dword [0x48919c]
call fcn.004035a8
mov dword [ebp - 0xe4], eax
cmp dword [ebp + 0x14], 0x800
jle 0x409ecf
mov eax, dword [ebp + 0x14]
mov ecx, 5
cdq
idiv ecx
cmp edx, 4
jne 0x409ecf
push ebx
call fcn.00404714
pop ecx
cmp dword [ebp + 0x24], 0xffffffff
jle 0x409f16
xor eax, eax
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 0x190
jne 0x409f04
push 0x19
call fcn.0049f2bc
pop ecx
mov dword [ebp - 0xe8], eax
mov edx, dword [ebp - 0xe8]
push edx
call fcn.004429a0
pop ecx
inc dword [ebp - 0xa8]
cmp dword [ebp - 0xa8], 0x1f6
jl 0x409edd
cmp dword [ebp + 0x18], 1
jne 0x40a2eb
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0xe0]
call fcn.0048c0f4
cmp dword [ebp + 0x14], 0x400
jle 0x40a134
cmp dword [ebp + 0x24], 0xffffffff
jle 0x40a134
mov ecx, dword [ebx + 0xaec]
add ecx, 0xffffec61
mov dword [ebp - 0xac], ecx
mov eax, dword [ebp + 0x24]
mov edx, eax
shl eax, 6
add eax, edx
add eax, dword [ebp - 0xac]
push 0x41
push eax
lea ecx, [ebp - 0x208]
push ecx
call fcn.0049fa50
add esp, 0xc
lea eax, [ebp + 0x28]
lea edx, [ebp - 0x208]
push 4
push eax
push 0x41
push edx
push ebx
call fcn.0040483c
add esp, 0x14
push 0x4c3be8
lea ecx, [ebp - 0x208]
push ecx
call fcn.0043bbe0
add esp, 8
mov eax, dword [ebx + 0xaf0]
add eax, 0xffffff30
mov dword [ebp - 0xac], eax
push 0x4c3bdc
mov edx, dword [ebp - 0xac]
push edx
call fcn.0043bbe0
add esp, 8
push 0x4c3be0
push 0x4c555b
call fcn.0043bda8
add esp, 8
mov ecx, dword [0x4c3bdc]
mov eax, dword [0x4c3be0]
mov edx, dword [0x4c3be8]
push 0x4c3be4
push ecx
push eax
push edx
call fcn.00435a94
add esp, 0x10
mov ecx, dword [0x4c3be4]
push ecx
lea eax, [ebp - 0x208]
push eax
call fcn.0043b788
add esp, 8
lea edx, [ebp - 0x208]
push edx
call fcn.0049fbf4
pop ecx
mov dword [ebp - 0xac], eax
lea ecx, [ebp - 0xac]
lea eax, [ebp - 0x208]
push ecx
push eax
push ebx
call fcn.0040486c
add esp, 0xc
push ebx
call fcn.0040508c
pop ecx
xor edx, edx
mov dl, al
mov ecx, 1
sub ecx, edx
mov eax, dword [ebp - 0xe0]
mov edx, ecx
shl edx, 2
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
add edx, 0x68
call fcn.0048c040
mov eax, dword [ebp - 0xe0]
lea edx, [ebp - 0x207]
mov ecx, 0x1d
mov esi, dword [eax]
call dword [esi + 8]
push 0x3c
lea eax, [ebx + 0xa00]
push eax
lea edx, [ebp - 0x2a8]
push edx
call fcn.0049fa50
add esp, 0xc
lea ecx, [ebx + 0x1d60]
lea eax, [ebp - 0x2a8]
add eax, 0x3c
push 0x3c
push ecx
push eax
call fcn.0049fa50
add esp, 0xc
mov edx, dword [ebp - 0x244]
add edx, 0xfffff826
mov dword [ebp - 0xec], edx
mov ecx, dword [ebp - 0xec]
movsx ecx, byte [ecx + 9]
add ecx, 0xffffffd0
add ecx, dword [ebp - 0x280]
mov eax, ecx
mov ecx, 0xa
cdq
idiv ecx
mov ecx, edx
add cl, 0x30
mov byte [ebp - 0xed], cl
mov eax, dword [ebp - 0xec]
mov dl, byte [ebp - 0xed]
mov byte [eax + 9], dl
mov eax, dword [ebp - 0xec]
movsx ecx, byte [eax + 0x10]
add ecx, 0xffffffd0
add ecx, dword [ebp - 0x280]
mov eax, ecx
mov ecx, 0xa
cdq
idiv ecx
mov ecx, edx
add cl, 0x30
mov byte [ebp - 0xed], cl
mov eax, dword [ebp - 0xec]
mov dl, byte [ebp - 0xed]
mov byte [eax + 0x10], dl
cmp dword [ebp + 0x14], 0x800
jle 0x40a187
mov eax, dword [ebp + 0x14]
mov ecx, 5
cdq
idiv ecx
cmp edx, 4
jne 0x40a187
fld dword [ebx + 0x3f0]
fmul dword [ebx + 0x3f0]
fmul dword [ebx + 0x3f0]
fld xword [0x40af30]
fmulp st(1)
fld dword [ebx + 0x3e8]
fmul dword [ebx + 0x3f0]
fmul dword [ebx + 0x3f0]
faddp st(1)
fadd dword [ebx + 0x3f0]
fstp dword [ebx + 0x3f0]
cmp dword [ebx + 0x638], 0
jle 0x40a9cb
cmp dword [ebp + 0x14], 0x2800
jle 0x40a9cb
mov edx, 4
mov eax, dword [ebp - 0xe0]
call fcn.0048c040
mov eax, dword [ebp - 0xe0]
lea edx, [ebp - 0x21c]
mov ecx, 0x14
mov esi, dword [eax]
call dword [esi + 4]
mov edx, dword [ebp + 0x14]
sar edx, 1
jns 0x40a1d1
adc edx, 0
mov eax, dword [ebp - 0xe0]
call fcn.0048c040
mov eax, dword [ebp - 0xe0]
lea edx, [ebp - 0x230]
mov ecx, 0x14
mov esi, dword [eax]
call dword [esi + 4]
cmp dword [ebx + 0x638], 1
jne 0x40a268
push 0x15
push 0
lea eax, [ebp - 0x208]
push eax
call fcn.0049fac0
add esp, 0xc
mov edx, dword [ebx + 0x63c]
push edx
push 0x4c5561
lea ecx, [ebp - 0x208]
push ecx
call fcn.004a3230
add esp, 0xc
xor eax, eax
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0x21c]
lea ecx, [ebp - 0x230]
mov edx, 0x14
sub edx, dword [ebp - 0xac]
mov dl, byte [ebp + edx - 0x208]
xor dl, byte [ecx]
xor dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
inc dword [ebp - 0xac]
cmp dword [ebp - 0xac], 0x14
jl 0x40a23d
jmp 0x40a2ae
cmp dword [ebx + 0x638], 2
jne 0x40a2ae
xor eax, eax
lea ecx, [ebp - 0x21c]
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0x230]
mov esi, 0x14
mov dl, byte [eax]
sub esi, dword [ebp - 0xac]
xor dl, byte [ebx + esi + 0x640]
xor dl, byte [ecx]
inc ecx
mov byte [eax], dl
inc eax
inc dword [ebp - 0xac]
cmp dword [ebp - 0xac], 0x14
jl 0x40a285
mov edx, dword [ebp + 0x14]
sar edx, 1
jns 0x40a2b8
adc edx, 0
mov eax, dword [ebp - 0xe0]
call fcn.0048c040
mov eax, dword [ebp - 0xe0]
lea edx, [ebp - 0x230]
mov ecx, 0x14
mov esi, dword [eax]
call dword [esi + 8]
xor edx, edx
mov eax, dword [ebp - 0xe0]
call fcn.0048c040
jmp 0x40a9cb
cmp dword [ebp + 0x18], 2
je 0x40a2fb
cmp dword [ebp + 0x18], 3
jne 0x40a9cb
mov dl, 1
mov eax, dword [0x48919c]
call fcn.004035a8
mov dword [ebp - 0xf8], eax
lea edx, [ebp - 0xa8]
mov ecx, 4
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
call dword [esi + 4]
mov ecx, dword [ebp + 0x14]
sub ecx, 4
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0xf8]
call fcn.0048c0f4
cmp dword [ebp + 0x14], 0x400
jle 0x40a555
cmp dword [ebp + 0x24], 0xffffffff
jle 0x40a555
mov eax, dword [ebx + 0xaec]
add eax, 0xffffec61
mov dword [ebp - 0xac], eax
mov eax, dword [ebp + 0x24]
mov edx, eax
shl eax, 6
add eax, edx
add eax, dword [ebp - 0xac]
push 0x41
push eax
lea ecx, [ebp - 0x208]
push ecx
call fcn.0049fa50
add esp, 0xc
lea eax, [ebp + 0x28]
lea edx, [ebp - 0x208]
push 4
push eax
push 0x41
push edx
push ebx
call fcn.0040483c
add esp, 0x14
xor ecx, ecx
mov dword [0x4c3bdc], ecx
xor eax, eax
mov dword [0x4c3be0], eax
xor edx, edx
mov dword [0x4c3be4], edx
xor ecx, ecx
mov dword [0x4c3be8], ecx
push 0x4c3be8
lea eax, [ebp - 0x208]
push eax
call fcn.0043bbe0
add esp, 8
mov edx, dword [ebx + 0xaf0]
add edx, 0xffffff30
mov dword [ebp - 0xac], edx
push 0x4c3bdc
mov ecx, dword [ebp - 0xac]
push ecx
call fcn.0043bbe0
add esp, 8
push 0x4c3be0
push 0x4c5564
call fcn.0043bda8
add esp, 8
mov eax, dword [0x4c3bdc]
mov edx, dword [0x4c3be0]
mov ecx, dword [0x4c3be8]
push 0x4c3be4
push eax
push edx
push ecx
call fcn.00435a94
add esp, 0x10
mov eax, dword [0x4c3be4]
push eax
lea edx, [ebp - 0x208]
push edx
call fcn.0043b788
add esp, 8
lea ecx, [ebp - 0x208]
push ecx
call fcn.0049fbf4
pop ecx
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0xac]
lea edx, [ebp - 0x208]
push eax
push edx
push ebx
call fcn.0040486c
add esp, 0xc
push ebx
call fcn.0040508c
pop ecx
xor ecx, ecx
mov cl, al
mov eax, 1
sub eax, ecx
mov edx, eax
mov eax, dword [ebp - 0xf8]
shl edx, 2
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
add edx, 0x64
call fcn.0048c040
mov eax, dword [ebp - 0xf8]
lea edx, [ebp - 0x207]
mov ecx, 0x1d
mov esi, dword [eax]
call dword [esi + 8]
push 0x3c
lea eax, [ebx + 0xa00]
push eax
lea edx, [ebp - 0x320]
push edx
call fcn.0049fa50
add esp, 0xc
lea ecx, [ebx + 0x1d60]
lea eax, [ebp - 0x320]
add eax, 0x3c
push 0x3c
push ecx
push eax
call fcn.0049fa50
add esp, 0xc
mov edx, dword [ebp - 0x2bc]
add edx, 0xfffff826
mov dword [ebp - 0xfc], edx
mov ecx, dword [ebp - 0xfc]
movsx ecx, byte [ecx + 9]
add ecx, 0xffffffd0
add ecx, dword [ebp - 0x2f8]
mov eax, ecx
mov ecx, 0xa
cdq
idiv ecx
mov ecx, edx
add cl, 0x30
mov byte [ebp - 0xfd], cl
mov eax, dword [ebp - 0xfc]
mov dl, byte [ebp - 0xfd]
mov byte [eax + 9], dl
mov eax, dword [ebp - 0xfc]
movsx ecx, byte [eax + 0x10]
add ecx, 0xffffffd0
add ecx, dword [ebp - 0x2f8]
mov eax, ecx
mov ecx, 0xa
cdq
idiv ecx
mov ecx, edx
add cl, 0x30
mov byte [ebp - 0xfd], cl
mov eax, dword [ebp - 0xfc]
mov dl, byte [ebp - 0xfd]
mov byte [eax + 0x10], dl
cmp dword [ebp + 0x14], 0x2800
jle 0x40a60f
xor edx, edx
mov eax, dword [ebp - 0xf8]
call fcn.0048c040
mov eax, dword [ebp - 0xf8]
lea edx, [ebp - 0x208]
mov ecx, 0xc8
mov esi, dword [eax]
call dword [esi + 4]
xor eax, eax
lea ecx, [ebp - 0x208]
mov dword [ebp - 0xac], eax
mov edx, 0xc7
sub edx, dword [ebp - 0xac]
mov al, byte [ebp + edx - 0x208]
xor byte [ecx], al
inc dword [ebp - 0xac]
inc ecx
cmp dword [ebp - 0xac], 0x64
jl 0x40a593
mov eax, dword [ebp + 0x14]
mov ecx, 0x32
cdq
idiv ecx
mov al, byte [ebx + edx + 0x3a4]
xor byte [ebp - 0x1d6], al
cmp dword [ebp + 0x14], 0xc800
jle 0x40a5e7
xor edx, edx
mov eax, dword [ebp - 0xf8]
call fcn.0048c040
jmp 0x40a5f4
xor edx, edx
mov eax, dword [ebp - 0xf8]
call fcn.0048c040
mov eax, dword [ebp - 0xf8]
lea edx, [ebp - 0x208]
mov ecx, 0x64
mov esi, dword [eax]
call dword [esi + 8]
jmp 0x40a6db
cmp dword [ebp + 0x14], 0x1400
jle 0x40a6db
cmp dword [ebp + 0x14], 0x2800
jge 0x40a6db
xor edx, edx
mov eax, dword [ebp - 0xf8]
call fcn.0048c040
mov eax, dword [ebp - 0xf8]
lea edx, [ebp - 0x208]
mov ecx, 0xa
mov esi, dword [eax]
call dword [esi + 4]
xor eax, eax
lea ecx, [ebp - 0x208]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp + 0x14]
add eax, dword [ebp - 0xac]
mov esi, 0x32
cdq
idiv esi
mov al, byte [ebx + edx + 0x3a4]
xor byte [ecx], al
inc dword [ebp - 0xac]
inc ecx
cmp dword [ebp - 0xac], 0xa
jl 0x40a65a
xor edx, edx
mov eax, dword [ebp - 0xf8]
call fcn.0048c040
mov eax, dword [ebx + 0xae4]
lea ecx, [ebp - 0x205]
add eax, 0x4e66
xor edx, edx
mov dword [ebp - 0xac], edx
mov edx, dword [ebp - 0xac]
mov dl, byte [eax + edx]
xor byte [ecx], dl
inc dword [ebp - 0xac]
inc ecx
cmp dword [ebp - 0xac], 5
jl 0x40a6aa
mov eax, dword [ebp - 0xf8]
lea edx, [ebp - 0x208]
mov ecx, 0xa
mov esi, dword [eax]
call dword [esi + 8]
cmp dword [ebx + 0x638], 0
jle 0x40a83d
cmp dword [ebp + 0x14], 0x2800
jle 0x40a83d
xor edx, edx
mov eax, dword [ebp - 0xf8]
call fcn.0048c040
mov eax, dword [ebp - 0xf8]
lea edx, [ebp - 0x21c]
mov ecx, 0x14
mov esi, dword [eax]
call dword [esi + 4]
mov edx, dword [ebp + 0x14]
sar edx, 1
jns 0x40a722
adc edx, 0
sub edx, 4
mov eax, dword [ebp - 0xf8]
call fcn.0048c040
mov eax, dword [ebp - 0xf8]
lea edx, [ebp - 0x230]
mov ecx, 0x14
mov esi, dword [eax]
call dword [esi + 4]
cmp dword [ebx + 0x638], 1
jne 0x40a7bc
push 0x15
push 0
lea eax, [ebp - 0x208]
push eax
call fcn.0049fac0
add esp, 0xc
mov edx, dword [ebx + 0x63c]
push edx
push 0x4c556a
lea ecx, [ebp - 0x208]
push ecx
call fcn.004a3230
add esp, 0xc
xor eax, eax
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0x21c]
lea ecx, [ebp - 0x230]
mov edx, 0x14
sub edx, dword [ebp - 0xac]
mov dl, byte [ebp + edx - 0x208]
xor dl, byte [ecx]
xor dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
inc dword [ebp - 0xac]
cmp dword [ebp - 0xac], 0x14
jl 0x40a791
jmp 0x40a802
cmp dword [ebx + 0x638], 2
jne 0x40a802
xor eax, eax
lea ecx, [ebp - 0x21c]
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0x230]
mov esi, 0x14
mov dl, byte [eax]
sub esi, dword [ebp - 0xac]
xor dl, byte [ebx + esi + 0x640]
xor dl, byte [ecx]
inc ecx
mov byte [eax], dl
inc eax
inc dword [ebp - 0xac]
cmp dword [ebp - 0xac], 0x14
jl 0x40a7d9
mov edx, dword [ebp + 0x14]
sar edx, 1
jns 0x40a80c
adc edx, 0
sub edx, 4
mov eax, dword [ebp - 0xf8]
call fcn.0048c040
mov eax, dword [ebp - 0xf8]
lea edx, [ebp - 0x230]
mov ecx, 0x14
mov esi, dword [eax]
call dword [esi + 8]
xor edx, edx
mov eax, dword [ebp - 0xf8]
call fcn.0048c040
mov eax, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xa8]
inc edx
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 0xe0]
call fcn.0048c04c
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xf8]
call fcn.0048c04c
push eax
lea eax, [ebp - 0xf4]
mov edx, dword [ebp - 0xf8]
mov ecx, dword [edx + 4]
push ecx
push eax
mov edx, dword [ebp - 0xe0]
mov ecx, dword [edx + 4]
push ecx
call fcn.00430a00
add esp, 0x10
test eax, eax
je 0x40a948
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40a8c6
mov edx, dword [ebp - 8]
mov ecx, dword [edx]
mov dword [ebp - 4], ecx
mov word [ebp - 0x44], 0x14
mov edx, 3
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx - 4]
mov word [ebp - 0x44], 8
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x40a8f6
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx]
mov dword [ebp - 0xc], ecx
mov word [ebp - 0x44], 0x2c
mov edx, 3
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx - 4]
mov word [ebp - 0x44], 0x20
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x40a926
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx]
mov dword [ebp - 0x14], ecx
mov word [ebp - 0x44], 0x44
mov edx, 3
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
call dword [ecx - 4]
mov word [ebp - 0x44], 0x38
mov eax, dword [ebp - 0xa0]
push eax
call fcn.0049f0f4
pop ecx
inc dword [ebx + 0x1cbc]
mov edx, dword [ebp - 0x54]
mov dword fs:[0], edx
jmp 0x40af0b
cmp dword [ebp + 0x14], 0x800
jle 0x40a99b
mov eax, dword [ebp + 0x14]
mov ecx, 5
cdq
idiv ecx
cmp edx, 4
jne 0x40a99b
fld dword [ebx + 0x3f0]
fmul dword [ebx + 0x3f0]
fmul dword [ebx + 0x3f0]
fld xword [0x40af30]
fmulp st(1)
fld dword [ebx + 0x3e8]
fmul dword [ebx + 0x3f0]
fmul dword [ebx + 0x3f0]
faddp st(1)
fadd dword [ebx + 0x3f0]
fstp dword [ebx + 0x3f0]
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x40a9cb
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx]
mov dword [ebp - 0x1c], ecx
mov word [ebp - 0x44], 0x5c
mov edx, 3
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
call dword [ecx - 4]
mov word [ebp - 0x44], 0x50
xor edx, edx
mov eax, dword [ebp - 0xe0]
call fcn.0048c040
mov ecx, dword [ebp - 0xe0]
mov esi, dword [ecx + 4]
mov eax, dword [ebp - 0xa0]
mov edx, dword [ebp - 0xa4]
mov cx, word [esi]
mov word [eax + edx*2], cx
inc dword [ebp - 0xa4]
inc dword [ebp - 0xb0]
fild dword [ebp + 0x14]
fcomp qword [0x40af3c]
fnstsw ax
sahf
jbe 0x40aa30
mov eax, dword [ebp + 0x14]
mov ecx, 5
cdq
idiv ecx
cmp edx, 4
jne 0x40aa30
fld dword [ebx + 0x3f0]
fadd dword [ebx + 0x3ec]
fstp dword [ebx + 0x3f4]
mov eax, dword [ebp - 0xe0]
call fcn.0048c04c
mov edi, eax
sar edi, 1
jns 0x40aa44
adc edi, 0
lea eax, [edi - 3]
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xa8], 1
mov edx, dword [ebp - 0xa8]
cmp edx, dword [ebp - 0xb8]
jge 0x40ac99
mov ecx, dword [ebp - 0xa8]
cmp word [esi + ecx*2], 0
jne 0x40aba5
mov eax, dword [ebp - 0xa8]
cmp word [esi + eax*2 + 2], 0
jne 0x40aba5
mov edx, dword [ebp - 0xa8]
cmp word [esi + edx*2 + 4], 0
je 0x40aba5
xor eax, eax
jmp 0x40aacc
mov edx, dword [ebp - 0xa8]
push dword [esi + edx*2 + 6]
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ebp - 0xa4]
lea edx, [ecx + edx*2]
pop ecx
mov word [edx], cx
inc dword [ebp - 0xa4]
inc dword [ebp - 0xb0]
inc eax
mov edx, dword [ebp - 0xa8]
movzx ecx, word [esi + edx*2 + 4]
cmp eax, ecx
jl 0x40aaa2
add dword [ebp - 0xa8], 3
cmp dword [ebp - 0xa8], 0x1f4
jne 0x40ac81
fild dword [ebp + 0x14]
fcomp qword [0x40af44]
fnstsw ax
sahf
jbe 0x40ac81
mov eax, dword [ebp + 0x14]
mov ecx, 5
cdq
idiv ecx
add edx, 0xfffffffc
test edx, edx
setne al
and eax, 1
mov byte [ebp - 0xfe], al
xor edx, edx
mov dl, byte [ebp - 0xfe]
cmp edx, 1
sbb ecx, ecx
neg ecx
mov byte [ebp - 0xfe], cl
cmp dword [ebp - 0xa4], 0x64
jle 0x40ac81
fld dword [ebx + 0x3f4]
fmul dword [0x40af4c]
xor eax, eax
mov al, byte [ebp - 0xfe]
mov dword [ebp - 0x324], eax
fild dword [ebp - 0x324]
fmulp st(1)
call fcn.004a6bd0
mov edx, eax
shl edx, 2
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
add dword [0x4c3bec], edx
mov ecx, dword [0x4c3bec]
sub dword [ebp - 0xa4], ecx
cmp dword [ebp - 0xa4], 0x64
jge 0x40ac81
mov dword [ebp - 0xa4], 0x64
jmp 0x40ac81
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xa0]
mov dx, word [esi + eax*2]
mov eax, dword [ebp - 0xa4]
mov word [ecx + eax*2], dx
inc dword [ebp - 0xa4]
inc dword [ebp - 0xb0]
cmp dword [ebp - 0xa8], 0x1f4
jne 0x40ac81
fild dword [ebp + 0x14]
fcomp qword [0x40af44]
fnstsw ax
sahf
jbe 0x40ac81
mov eax, dword [ebp + 0x14]
mov ecx, 5
cdq
idiv ecx
add edx, 0xfffffffc
test edx, edx
setne al
and eax, 1
mov byte [ebp - 0xff], al
xor edx, edx
mov dl, byte [ebp - 0xff]
cmp edx, 1
sbb ecx, ecx
neg ecx
mov byte [ebp - 0xff], cl
cmp dword [ebp - 0xa4], 0x64
jle 0x40ac81
fld dword [ebx + 0x3f4]
fmul dword [0x40af4c]
xor eax, eax
mov al, byte [ebp - 0xff]
mov dword [ebp - 0x324], eax
fild dword [ebp - 0x324]
fmulp st(1)
call fcn.004a6bd0
mov edx, eax
shl edx, 2
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
add dword [0x4c3bec], edx
mov ecx, dword [0x4c3bec]
sub dword [ebp - 0xa4], ecx
cmp dword [ebp - 0xa4], 0x64
jge 0x40ac81
mov dword [ebp - 0xa4], 0x64
inc dword [ebp - 0xa8]
mov eax, dword [ebp - 0xa8]
cmp eax, dword [ebp - 0xb8]
jl 0x40aa69
cmp edi, dword [ebp - 0xa8]
jle 0x40accf
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xa0]
mov cx, word [esi + edx*2]
mov edx, dword [ebp - 0xa4]
mov word [eax + edx*2], cx
inc dword [ebp - 0xa4]
inc dword [ebp - 0xa8]
cmp edi, dword [ebp - 0xa8]
jg 0x40aca1
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xb0]
add ecx, ecx
mov edx, dword [ebp - 0xa0]
mov esi, dword [eax]
call dword [esi + 8]
cmp dword [ebp + 0x24], 0xffffffff
jle 0x40acfd
mov eax, dword [ebp - 0xe8]
add eax, 0x45
mov dword [ebx + 0x1f9c], eax
xor edx, edx
mov eax, dword [ebp - 0xe4]
call fcn.0048c040
mov edx, dword [ebp - 0xe4]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x50]
cmp dword [ebp + 0x24], 6
jle 0x40ae94
mov eax, dword [ebp + 0x14]
mov ecx, 0x64
cdq
idiv ecx
mov ecx, eax
mov eax, ebx
xor edx, edx
mov esi, 0xa
div esi
add ecx, eax
xor edx, edx
mov eax, ecx
mov ecx, 3
div ecx
test edx, edx
jne 0x40ae94
mov eax, dword [ebp + 0x10]
call fcn.0048c030
mov esi, eax
mov eax, ebx
call fcn.0047b1c8
add esi, eax
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
call dword [edx + 0x2c]
xchg esi, eax
cdq
idiv esi
mov dword [ebp - 0x104], edx
mov eax, dword [ebp + 0x10]
call fcn.0048c030
mov esi, eax
mov eax, dword [sym.Project1.exe__ControlForm]
mov eax, dword [eax]
call fcn.0047b1c8
add esi, eax
mov edx, dword [sym.Project1.exe__ControlForm]
add esi, dword [edx]
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
call dword [edx + 0x20]
xchg esi, eax
cdq
idiv esi
mov dword [ebp - 0x108], edx
mov eax, dword [ebp + 0xc]
call fcn.0045d7fc
cmp al, 5
jne 0x40adf8
push 0x1e
mov edx, dword [ebp - 0x108]
push edx
mov ecx, dword [ebp - 0x104]
push ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
push 0x10
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
mov eax, dword [ebp + 0xc]
dec edx
call fcn.0045d880
push eax
push ebx
call fcn.0040b130
add esp, 0x20
jmp 0x40ae94
mov eax, dword [ebp + 0xc]
call fcn.0045d7fc
cmp al, 6
jne 0x40ae47
push 0x1e
mov edx, dword [ebp - 0x108]
push edx
mov ecx, dword [ebp - 0x104]
push ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
push 0x18
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
mov eax, dword [ebp + 0xc]
dec edx
call fcn.0045d880
push eax
push ebx
call fcn.0040b130
add esp, 0x20
jmp 0x40ae94
mov eax, dword [ebp + 0xc]
call fcn.0045d7fc
cmp al, 7
jne 0x40ae94
push 0x1e
mov edx, dword [ebp - 0x108]
push edx
mov ecx, dword [ebp - 0x104]
push ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
push 0x20
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
mov eax, dword [ebp + 0xc]
dec edx
call fcn.0045d880
push eax
push ebx
call fcn.0040b130
add esp, 0x20
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x28], 0
je 0x40aec4
mov eax, dword [ebp - 0x28]
mov edx, dword [eax]
mov dword [ebp - 0x24], edx
mov word [ebp - 0x44], 0x74
mov edx, 3
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
call dword [ecx - 4]
mov word [ebp - 0x44], 0x68
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
je 0x40aef4
mov edx, dword [ebp - 0x30]
mov ecx, dword [edx]
mov dword [ebp - 0x2c], ecx
mov word [ebp - 0x44], 0x8c
mov edx, 3
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
call dword [ecx - 4]
mov word [ebp - 0x44], 0x80
mov eax, dword [ebp - 0xa0]
push eax
call fcn.0049f0f4
pop ecx
mov edx, dword [ebp - 0x54]
mov dword fs:[0], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret