Function at 0x408798
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x16
push 0
push 0
dec ecx
jne 0x4087a0
push ecx
push ebx
push esi
push edi
mov eax, dword [0x40a3b0]
mov byte [eax], 1
mov eax, 0x408758
call fcn.00404e18
mov esi, 0x40b964
xor eax, eax
push ebp
push 0x40995e
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x409978
mov eax, 0x40b798
call fcn.00402984
mov eax, 0x40b798
call fcn.00402714
call fcn.0040262c
mov edx, 0x40bb44
mov eax, 0x40b798
call fcn.00402c30
mov eax, 0x40b798
call fcn.00402c9c
call fcn.0040262c
mov eax, 0x40b798
call fcn.00402a4c
call fcn.0040262c
mov eax, 0x40bb5c
call fcn.00403e20
mov edx, 0x409994
mov eax, esi
call fcn.00402984
mov eax, esi
call fcn.00402720
call fcn.0040262c
mov ebx, 0x32
mov eax, 0xfffffffb
call fcn.00402ae0
mov edi, eax
mov eax, edi
call fcn.00408700
cdq
xor eax, edx
sub eax, edx
mov ecx, 0xa
cdq
idiv ecx
add edx, 0x30
lea eax, [ebp - 0x1c]
call fcn.00403fec
mov edx, dword [ebp - 0x1c]
mov eax, 0x40bb5c
call fcn.004040a8
dec ebx
jne 0x408842
mov eax, dword [0x40a308]
mov edx, dword [0x40bb5c]
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40bb5c]
mov eax, esi
call fcn.00404340
call fcn.00402a40
call fcn.0040262c
mov eax, esi
call fcn.00402a4c
call fcn.0040262c
mov eax, 0x40bb54
mov edx, 0x4099b0
call fcn.00403e74
mov ebx, 0xc4
mov eax, 0xdf
call fcn.00402ae0
mov edx, eax
add edx, 0x20
lea eax, [ebp - 0x20]
call fcn.00403fec
mov edx, dword [ebp - 0x20]
mov eax, 0x40bb54
call fcn.004040a8
dec ebx
jne 0x4088ce
mov eax, dword [0x40a308]
mov edx, dword [0x40bb54]
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, 0x4099c0
mov eax, esi
call fcn.00402984
mov eax, esi
call fcn.00402720
call fcn.0040262c
mov edx, dword [0x40bb54]
mov eax, esi
call fcn.00404340
call fcn.00402a40
call fcn.0040262c
mov eax, esi
call fcn.00402a4c
call fcn.0040262c
mov edx, 0x4099dc
mov eax, 0x40b798
call fcn.00402984
mov eax, 0x40b798
call fcn.00402714
call fcn.0040262c
mov edx, 0x40bb30
mov eax, 0x40b798
call fcn.00402c30
mov eax, 0x40b798
call fcn.00402c9c
call fcn.0040262c
mov eax, 0x40b798
call fcn.00402a4c
call fcn.0040262c
mov eax, 0x40bb30
mov edx, dword [0x40bb54]
call fcn.004040a8
mov ebx, 1
mov eax, dword [0x40bb30]
movzx edi, byte [eax + ebx - 1]
mov eax, 0x40bb40
call fcn.00403e20
lea edx, [ebp - 0x24]
mov eax, edi
call fcn.00405cb8
mov edx, dword [ebp - 0x24]
mov eax, 0x40bb40
call fcn.00403e74
mov eax, dword [0x40bb40]
call fcn.004040a0
cmp eax, 2
jge 0x4089f9
mov eax, 0x40bb40
mov ecx, dword [0x40bb40]
mov edx, 0x4099f8
call fcn.004040ec
mov eax, dword [0x40bb40]
call fcn.004040a0
cmp eax, 3
jge 0x408a1d
mov eax, 0x40bb40
mov ecx, dword [0x40bb40]
mov edx, 0x409a04
call fcn.004040ec
mov eax, 0x40bb34
mov edx, dword [0x40bb40]
call fcn.004040a8
inc ebx
cmp ebx, 0xc9
jne 0x4089aa
mov edx, 0x409a10
mov eax, esi
call fcn.00402984
mov eax, esi
call fcn.00402720
call fcn.0040262c
mov edx, dword [0x40bb34]
mov eax, esi
call fcn.00404340
call fcn.00402a40
call fcn.0040262c
mov eax, esi
call fcn.00402a4c
call fcn.0040262c
mov edx, 0x409a2c
mov eax, esi
call fcn.00402984
mov eax, esi
call fcn.00402720
call fcn.0040262c
mov edx, dword [0x40bb5c]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, 0x409a48
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov eax, 0x40bb58
mov edx, dword [0x40bb5c]
call fcn.00403e74
mov eax, 0x40bb80
mov edx, dword [0x40bb5c]
call fcn.00403e74
mov dword [0x40bb38], 0xc
mov edi, 0x40bb84
mov eax, 0x40bb68
call fcn.00403e20
mov ebx, 1
mov eax, 0x40bb60
mov edx, dword [0x40bb58]
mov dl, byte [edx + ebx - 1]
call fcn.00403fec
mov eax, 0x40bb64
mov edx, dword [0x40bb58]
mov dl, byte [edx + ebx]
call fcn.00403fec
mov eax, dword [0x40bb60]
movzx eax, byte [eax]
mov edx, dword [0x40bb64]
movzx edx, byte [edx]
add eax, edx
sub eax, 0x60
mov ecx, 0xa
cdq
idiv ecx
mov dword [0x40bb78], edx
lea eax, [ebp - 0x28]
mov edx, dword [0x40bb78]
add edx, 0x30
call fcn.00403fec
mov edx, dword [ebp - 0x28]
mov eax, 0x40bb68
call fcn.004040a8
inc ebx
cmp ebx, 0x32
jne 0x408af8
mov eax, 0x40bb60
mov edx, dword [0x40bb58]
mov dl, byte [edx + 0x31]
call fcn.00403fec
mov eax, 0x40bb64
mov edx, dword [0x40bb68]
mov dl, byte [edx]
call fcn.00403fec
mov eax, dword [0x40bb60]
movzx eax, byte [eax]
mov edx, dword [0x40bb64]
movzx edx, byte [edx]
add eax, edx
sub eax, 0x60
mov ecx, 0xa
cdq
idiv ecx
mov dword [0x40bb78], edx
lea eax, [ebp - 0x2c]
mov edx, dword [0x40bb78]
add edx, 0x30
call fcn.00403fec
mov edx, dword [ebp - 0x2c]
mov eax, 0x40bb68
call fcn.004040a8
mov edx, dword [0x40bb68]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov eax, 0x40bb58
mov edx, dword [0x40bb68]
call fcn.00403e74
mov eax, edi
mov edx, dword [0x40bb68]
call fcn.00403e74
add edi, 4
dec dword [0x40bb38]
jne 0x408ae9
mov eax, esi
call fcn.00402a4c
call fcn.0040262c
mov edx, 0x409a84
mov eax, esi
call fcn.00402984
mov eax, esi
call fcn.00402720
call fcn.0040262c
lea eax, [ebp - 0x30]
mov ecx, dword [0x40bb5c]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x30]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, 0x409a48
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x34]
mov ecx, dword [0x40bb84]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x34]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x38]
mov ecx, dword [0x40bb88]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x38]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x3c]
mov ecx, dword [0x40bb8c]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x3c]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x40]
mov ecx, dword [0x40bb90]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x40]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x44]
mov ecx, dword [0x40bb94]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x44]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x48]
mov ecx, dword [0x40bb98]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x48]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x4c]
mov ecx, dword [0x40bb9c]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x4c]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x50]
mov ecx, dword [0x40bba0]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x50]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x54]
mov ecx, dword [0x40bba4]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x54]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x58]
mov ecx, dword [0x40bba8]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x58]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x5c]
mov ecx, dword [0x40bbac]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x5c]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x60]
mov ecx, dword [0x40bbb0]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x60]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
xor eax, eax
mov dword [0x40bb78], eax
mov eax, 0x40bb4c
call fcn.00403e20
mov dword [0x40bb3c], 1
mov eax, dword [0x40bb3c]
mov dword [0x40bb38], eax
cmp dword [0x40bb38], 0xa
jne 0x408e54
xor eax, eax
mov dword [0x40bb38], eax
mov ebx, 1
lea eax, [ebp - 0x64]
mov edx, dword [0x40bb5c]
mov dl, byte [edx + ebx - 1]
call fcn.00403fec
mov eax, dword [ebp - 0x64]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x40bb38]
call fcn.00405cb8
mov edx, dword [ebp - 0x68]
pop eax
call fcn.004041ec
jne 0x408f95
inc dword [0x40bb78]
mov edx, dword [0x40bb78]
mov eax, esi
call fcn.00402f90
call fcn.00402a40
call fcn.0040262c
mov edx, 0x409aa0
mov eax, esi
call fcn.00404340
call fcn.00402a40
call fcn.0040262c
mov edx, dword [0x40bb38]
mov eax, esi
call fcn.00402f90
call fcn.00402a40
call fcn.0040262c
mov edx, 0x409aa0
mov eax, esi
call fcn.00404340
call fcn.00402a40
call fcn.0040262c
mov edx, ebx
mov eax, esi
call fcn.00402f90
call fcn.00402a40
call fcn.0040262c
mov edx, 0x409aa0
mov eax, esi
call fcn.00404340
call fcn.00402a40
call fcn.0040262c
mov edi, 0xc
mov dword [ebp - 0x14], 0x40bb84
mov eax, 0x40bb6c
mov edx, dword [ebp - 0x14]
mov edx, dword [edx]
call fcn.00403e74
lea eax, [ebp - 0x6c]
mov edx, dword [0x40bb6c]
mov dl, byte [edx + ebx - 1]
call fcn.00403fec
mov edx, dword [ebp - 0x6c]
mov eax, 0x40bb4c
call fcn.004040a8
mov eax, dword [0x40bb6c]
mov dl, byte [eax + ebx - 1]
mov eax, esi
call fcn.00402f14
call fcn.00402a40
call fcn.0040262c
mov dl, 0x20
mov eax, esi
call fcn.00402f14
call fcn.00402a40
call fcn.0040262c
add dword [ebp - 0x14], 4
dec edi
jne 0x408f20
mov dl, 0x20
mov eax, esi
call fcn.00402f14
call fcn.00402fc0
call fcn.0040262c
inc ebx
cmp ebx, 0x33
jne 0x408e59
mov dl, 0x20
mov eax, esi
call fcn.00402f14
call fcn.00402fc0
call fcn.0040262c
inc dword [0x40bb3c]
cmp dword [0x40bb3c], 0xb
jne 0x408e3a
mov dl, 0x20
mov eax, esi
call fcn.00402f14
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40bb34]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40bb4c]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov dl, 0x20
mov eax, esi
call fcn.00402f14
call fcn.00402fc0
call fcn.0040262c
mov eax, 0x40bb48
call fcn.00403e20
mov eax, 0x40bb68
call fcn.00403e20
mov ebx, 1
mov eax, 0x40bb60
mov edx, dword [0x40bb34]
mov dl, byte [edx + ebx - 1]
call fcn.00403fec
mov eax, 0x40bb64
mov edx, dword [0x40bb4c]
mov dl, byte [edx + ebx - 1]
call fcn.00403fec
mov eax, dword [0x40bb60]
movzx eax, byte [eax]
mov edx, dword [0x40bb64]
movzx edx, byte [edx]
add eax, edx
sub eax, 0x60
mov ecx, 0xa
cdq
idiv ecx
mov dword [0x40bb78], edx
lea eax, [ebp - 0x70]
mov edx, dword [0x40bb78]
add edx, 0x30
call fcn.00403fec
mov edx, dword [ebp - 0x70]
mov eax, 0x40bb68
call fcn.004040a8
inc ebx
cmp ebx, 0x259
jne 0x409032
mov eax, 0x40bb48
mov edx, dword [0x40bb68]
call fcn.00403e74
mov edx, dword [0x40bb68]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov dl, 0x20
mov eax, esi
call fcn.00402f14
call fcn.00402fc0
call fcn.0040262c
mov eax, esi
call fcn.00402a4c
call fcn.0040262c
mov edx, 0x409aac
mov eax, esi
call fcn.00402984
mov eax, esi
call fcn.00402720
call fcn.0040262c
mov edx, dword [0x40bbb0]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, 0x409a48
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
xor eax, eax
mov dword [0x40bb78], eax
mov eax, dword [0x40bb48]
call fcn.004040a0
mov ecx, 0x32
cdq
idiv ecx
mov edi, eax
test edi, edi
jle 0x40919e
mov ebx, 1
inc dword [0x40bb78]
mov eax, dword [0x40bb78]
lea eax, [eax*4 + 0x40bec8]
push eax
mov eax, ebx
dec eax
imul edx, eax, 0x32
inc edx
mov ecx, 0x32
mov eax, dword [0x40bb48]
call fcn.0040429c
mov eax, dword [0x40bb78]
mov edx, dword [eax*4 + 0x40bec8]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
inc ebx
dec edi
jne 0x409154
mov eax, esi
call fcn.00402a4c
call fcn.0040262c
mov edx, 0x409ac8
mov eax, esi
call fcn.00402984
mov eax, esi
call fcn.00402720
call fcn.0040262c
lea eax, [ebp - 0x74]
mov ecx, dword [0x40bbb0]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x74]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, 0x409a48
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x78]
mov ecx, dword [0x40becc]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x78]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x7c]
mov ecx, dword [0x40bed0]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x7c]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x80]
mov ecx, dword [0x40bed4]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x80]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x84]
mov ecx, dword [0x40bed8]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x84]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x88]
mov ecx, dword [0x40bedc]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x88]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x8c]
mov ecx, dword [0x40bee0]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x8c]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x90]
mov ecx, dword [0x40bee4]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x90]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x94]
mov ecx, dword [0x40bee8]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x94]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x98]
mov ecx, dword [0x40beec]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x98]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0x9c]
mov ecx, dword [0x40bef0]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0x9c]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0xa0]
mov ecx, dword [0x40bef4]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0xa0]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
lea eax, [ebp - 0xa4]
mov ecx, dword [0x40bef8]
xor edx, edx
call fcn.004040ec
mov edx, dword [ebp - 0xa4]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
xor edx, edx
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
xor edx, edx
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
xor eax, eax
mov dword [0x40bb78], eax
mov eax, 0x40bb74
call fcn.00403e20
mov dword [0x40bb3c], 1
mov eax, dword [0x40bb3c]
mov dword [0x40bb38], eax
cmp dword [0x40bb38], 0xa
jne 0x40943d
xor eax, eax
mov dword [0x40bb38], eax
mov ebx, 1
mov eax, 0x40bb70
mov edx, dword [0x40bbb0]
call fcn.00403e74
lea eax, [ebp - 0xa8]
mov edx, dword [0x40bb70]
mov dl, byte [edx + ebx - 1]
call fcn.00403fec
mov eax, dword [ebp - 0xa8]
push eax
lea edx, [ebp - 0xac]
mov eax, dword [0x40bb38]
call fcn.00405cb8
mov edx, dword [ebp - 0xac]
pop eax
call fcn.004041ec
jne 0x4095a0
inc dword [0x40bb78]
mov edx, dword [0x40bb78]
mov eax, esi
call fcn.00402f90
call fcn.00402a40
call fcn.0040262c
mov edx, 0x409aa0
mov eax, esi
call fcn.00404340
call fcn.00402a40
call fcn.0040262c
mov edx, dword [0x40bb38]
mov eax, esi
call fcn.00402f90
call fcn.00402a40
call fcn.0040262c
mov edx, 0x409aa0
mov eax, esi
call fcn.00404340
call fcn.00402a40
call fcn.0040262c
mov edx, ebx
mov eax, esi
call fcn.00402f90
call fcn.00402a40
call fcn.0040262c
mov edx, 0x409aa0
mov eax, esi
call fcn.00404340
call fcn.00402a40
call fcn.0040262c
mov edi, 0xc
mov dword [ebp - 0x18], 0x40becc
mov eax, 0x40bb6c
mov edx, dword [ebp - 0x18]
mov edx, dword [edx]
call fcn.00403e74
lea eax, [ebp - 0xb0]
mov edx, dword [0x40bb6c]
mov dl, byte [edx + ebx - 1]
call fcn.00403fec
mov edx, dword [ebp - 0xb0]
mov eax, 0x40bb74
call fcn.004040a8
mov eax, dword [0x40bb6c]
mov dl, byte [eax + ebx - 1]
mov eax, esi
call fcn.00402f14
call fcn.00402a40
call fcn.0040262c
mov dl, 0x20
mov eax, esi
call fcn.00402f14
call fcn.00402a40
call fcn.0040262c
add dword [ebp - 0x18], 4
dec edi
jne 0x409525
mov dl, 0x20
mov eax, esi
call fcn.00402f14
call fcn.00402fc0
call fcn.0040262c
inc ebx
cmp ebx, 0x33
jne 0x409442
inc dword [0x40bb3c]
cmp dword [0x40bb3c], 0xb
jne 0x409423
mov dl, 0x20
mov eax, esi
call fcn.00402f14
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40bb74]
mov eax, esi
call fcn.00404340
call fcn.00402a40
call fcn.0040262c
mov eax, esi
call fcn.00402a4c
call fcn.0040262c
mov edx, 0x409ae8
mov eax, esi
call fcn.00402984
mov eax, esi
call fcn.00402720
call fcn.0040262c
xor eax, eax
mov dword [0x40bb78], eax
mov eax, dword [0x40bb74]
call fcn.004040a0
mov ecx, 0x32
cdq
idiv ecx
mov edi, eax
test edi, edi
jle 0x409679
mov ebx, 1
inc dword [0x40bb78]
mov eax, dword [0x40bb78]
lea eax, [eax*4 + 0x40c214]
push eax
mov eax, ebx
dec eax
imul edx, eax, 0x32
inc edx
mov ecx, 0x32
mov eax, dword [0x40bb74]
call fcn.0040429c
mov eax, dword [0x40bb78]
mov edx, dword [eax*4 + 0x40c214]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
inc ebx
dec edi
jne 0x40962f
mov eax, esi
call fcn.00402a4c
call fcn.0040262c
mov edx, 0x409b04
mov eax, esi
call fcn.00402984
mov eax, esi
call fcn.00402720
call fcn.0040262c
mov eax, 0x40bb50
call fcn.00403e20
mov edx, dword [0x40bb44]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40bb5c]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, 0x409a48
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov eax, 0x40bb68
call fcn.00403e20
mov ebx, 1
mov eax, 0x40bb60
mov edx, dword [0x40bb44]
mov dl, byte [edx + ebx - 1]
call fcn.00403fec
mov eax, 0x40bb64
mov edx, dword [0x40bb5c]
mov dl, byte [edx + ebx - 1]
call fcn.00403fec
mov eax, dword [0x40bb60]
movzx eax, byte [eax]
mov edx, dword [0x40bb64]
movzx edx, byte [edx]
add eax, edx
sub eax, 0x60
mov ecx, 0xa
cdq
idiv ecx
mov dword [0x40bb78], edx
lea eax, [ebp - 0xb4]
mov edx, dword [0x40bb78]
add edx, 0x30
call fcn.00403fec
mov edx, dword [ebp - 0xb4]
mov eax, 0x40bb68
call fcn.004040a8
inc ebx
cmp ebx, 0x33
jne 0x4096fa
mov eax, 0x40bb50
mov edx, dword [0x40bb68]
call fcn.00403e74
mov edx, dword [0x40bb68]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov dl, 0x20
mov eax, esi
call fcn.00402f14
call fcn.00402fc0
call fcn.0040262c
mov eax, esi
call fcn.00402a4c
call fcn.0040262c
mov edx, 0x409b20
mov eax, esi
call fcn.00402984
mov eax, esi
call fcn.00402720
call fcn.0040262c
mov edx, dword [0x40bb50]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov eax, esi
call fcn.00402a4c
call fcn.0040262c
mov edx, 0x409b40
mov eax, esi
call fcn.00402984
mov eax, esi
call fcn.00402720
call fcn.0040262c
mov edx, dword [0x40bb50]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40c218]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40c21c]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40c220]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40c224]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40c228]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40c22c]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40c230]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40c234]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40c238]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40c23c]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40c240]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov edx, dword [0x40c244]
mov eax, esi
call fcn.00404340
call fcn.00402fc0
call fcn.0040262c
mov eax, esi
call fcn.00402a4c
call fcn.0040262c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x409965
lea eax, [ebp - 0xb4]
mov edx, 0x27
call fcn.00403e44
ret