Function at 0x40246b
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4b3fc7
call fcn.004b3bc8
sub esp, 0x124
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x2c], 0x5bef
xor ebx, ebx
xor edi, edi
inc edi
cmp dword [ebp - 0x2c], 0x5ed8
jle 0x402534
mov esi, ebx
mov dword [ebp - 0x28], esi
mov ecx, ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x18], ebx
mov eax, esi
cdq
idiv ecx
mov eax, edx
mov dword [ebp - 0x38], eax
mov esi, ebx
cdq
idiv esi
mov eax, edx
mov dword [ebp - 0x3c], eax
mov esi, ebx
cdq
idiv esi
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x100]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4024e0
mov eax, dword [eax]
push eax
call fcn.0049e427
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x100]
call fcn.0040a7b5
inc esi
cmp esi, 0x4e46
mov eax, dword [ebp - 0x3c]
jl 0x4024c3
mov esi, dword [ebp - 0x18]
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x754b
mov eax, dword [ebp - 0x38]
jl 0x4024b9
mov ecx, dword [ebp - 0x34]
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, 0x798d
mov esi, dword [ebp - 0x28]
jl 0x4024aa
inc esi
mov dword [ebp - 0x28], esi
cmp esi, 0x4977
jl 0x4024a5
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x48], ebx
push 2
lea ecx, [ebp - 0xdc]
call fcn.0040a207
mov dword [ebp - 0x34], 9
mov dword [ebp - 0x24], ebx
jmp 0x402566
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xdc]
mov dword [eax + ecx*4], 0xd69f4288
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jl 0x402553
mov byte [ebp - 0x2d], bl
cmp byte [ebp - 0x2d], 0
je 0x40257c
push ebx
call dword [0xaa1510]
dec dword [ebp - 0x34]
lea ecx, [ebp - 0xdc]
call fcn.0040a2d9
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x2c], 0x5991
jge 0x4025a1
push 0xa7c478
call fcn.0049e427
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4025ca
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x48], eax
push 0xfffffffffffffff8
pop eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 0xcda7209c
mov dword [ebp - 0x2c], 0x65d0
cmp dword [ebp - 0x2c], 0x6694
jle 0x402667
mov esi, ebx
mov dword [ebp - 0x28], ebx
mov eax, ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x3c], ebx
mov edx, esi
mov ecx, eax
shl edx, cl
mov dword [ebp - 0x38], edx
mov esi, ebx
mov eax, edx
and eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x118]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x40262a
mov eax, dword [eax]
push eax
call fcn.0049e427
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x118]
call fcn.0040a7b5
inc esi
cmp esi, 0x7e10
mov edx, dword [ebp - 0x38]
jl 0x40260e
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, 0xd37
mov esi, dword [ebp - 0x28]
jl 0x402600
inc esi
mov dword [ebp - 0x28], esi
cmp esi, 0x781
jl 0x4025fb
push 3
lea ecx, [ebp - 0x74]
call fcn.0040a207
mov dword [ebp - 4], 2
cmp dword [ebp - 0x2c], 0x6304
jge 0x40268c
push 0xa7c4e8
call fcn.0049e427
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4026b5
push 4
pop esi
push esi
lea ecx, [ebp - 0x8c]
call fcn.0040a207
mov dword [ebp - 0x18], 0x1bb30b13
mov dword [ebp - 0x2c], 0x95dfea44
mov dword [ebp - 0x1c], ebx
jmp 0x4026e7
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x74]
mov dword [eax + ecx*4], 0x11ec1fcc
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x4026d7
mov dword [ebp - 0x1c], ebx
jmp 0x402702
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x8c]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x4026f2
mov dword [ebp - 0x3c], 0x5202
cmp dword [ebp - 0x3c], 0x53d1
jle 0x402771
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x1c], 0x496a
mov edi, ebx
mov dword [ebp - 0x34], 0x60fb
mov esi, ebx
mov eax, edi
xor eax, esi
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
inc esi
cmp esi, 0x7787
jl 0x40272f
mov ecx, dword [ebp - 0x28]
add edi, ecx
dec dword [ebp - 0x34]
jne 0x40272d
mov eax, dword [ebp - 0x38]
add ecx, eax
mov dword [ebp - 0x28], ecx
dec dword [ebp - 0x1c]
jne 0x402724
inc eax
mov dword [ebp - 0x38], eax
cmp eax, 0x6007
jl 0x40271a
xor edi, edi
inc edi
push 4
pop esi
cmp dword [ebp - 0x14], ebx
mov edx, edi
jne 0x40277a
mov edx, ebx
cmp dword [ebp - 0x24], ebx
jne 0x4027ad
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
neg eax
inc eax
imul eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
add eax, 0x68f6
mov ecx, 0xe3bf118c
cmp ecx, eax
sbb eax, eax
neg eax
sub eax, dword [ebp - 0x14]
mov eax, ebx
je 0x4027af
mov eax, edi
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x38], ecx
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setg cl
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setg dl
neg edx
sub edx, 0x295a
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, edx
setle cl
cmp ecx, dword [ebp - 0x24]
jg 0x4027f8
mov eax, dword [ebp - 0x38]
cmp dword [eax + 8], ebx
mov ecx, ebx
je 0x4027fa
mov ecx, edi
xor edx, edx
mov eax, dword [ebp - 0x8c]
cmp ecx, dword [eax]
sete dl
mov ecx, dword [ebp - 0x18]
add ecx, edx
mov eax, dword [ebp - 0x8c]
mov dword [eax], ecx
mov dword [ebp - 4], esi
cmp dword [ebp - 0x3c], 0x5110
jge 0x40282f
mov edx, 0xa7c574
mov ecx, 0xa9e1d8
call fcn.0040c865
or dword [ebp - 4], 0xffffffff
jmp 0x40285b
cmp dword [ebp - 0x24], ebx
je 0x402863
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x74]
cmp dword [eax + 4], 0xe0e206f6
sbb eax, eax
inc eax
xor edx, edx
cmp eax, 0xf2ec
setne dl
mov ecx, dword [ebp - 0x24]
add ecx, edx
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setle cl
imul ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
add ecx, 9
xor edx, edx
mov eax, dword [ebp - 0x74]
cmp dword [eax], ecx
setge dl
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x74]
mov dword [edx + 8], 0x69674b17
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp dword [edx + 8], ebx
je 0x402930
mov dword [ebp - 0x18], 0x715b7d07
cmp dword [ebp - 0x18], ebx
jne 0x40290a
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 0x4b492bb7
setge cl
add ecx, 0xd5ae
xor eax, eax
cmp ecx, 0xffffffff
setne al
imul eax, dword [ebp - 0x18]
cmp dword [edx + 8], eax
jl 0x402906
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 4], ebx
jne 0x40290a
mov ecx, ebx
jmp 0x40290c
mov ecx, edi
xor eax, eax
cmp ecx, 0xe1b4
setge al
imul ecx, eax, 0xf477
imul eax, dword [ebp - 0x2c], 0x5ed3
xor edx, edx
cmp eax, ecx
setle dl
mov dword [ebp - 0x20], edx
jmp 0x402943
mov byte [ebp - 0x2d], bl
cmp byte [ebp - 0x2d], 0
je 0x402943
push ebx
push edi
push ebx
push ebx
call dword [0xaa1344]
lea ecx, [ebp - 0x8c]
call fcn.0040a2d9
lea ecx, [ebp - 0x74]
call fcn.0040a2d9
mov eax, dword [ebp + 8]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x18], 0x7ddc85f7
mov dword [ebp - 0x18], esi
jmp 0x4029de
push 3
lea ecx, [ebp - 0xc4]
call fcn.0040a207
mov dword [ebp + 8], ebx
jmp 0x402996
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xc4]
mov dword [eax + ecx*4], 0xb546158d
inc dword [ebp + 8]
cmp dword [ebp + 8], 3
jl 0x402983
mov dword [ebp + 8], ebx
jmp 0x4029af
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x68], 0xc3ad3b31
inc dword [ebp + 8]
cmp dword [ebp + 8], 3
jl 0x4029a1
mov dword [ebp - 0x68], ebx
jmp 0x4029ca
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0xc4]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x68]
cmp dword [ebp - 0x68], 3
jl 0x4029ba
lea ecx, [ebp - 0xc4]
call fcn.0040a2d9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 7
je 0x402971
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x40]
mov dword [eax], ebx
mov eax, dword [ebp - 0x44]
cmp dword [eax], ebx
jl 0x4030d9
mov dword [ebp - 0x24], 0x9aaed6b6
mov dword [ebp - 0x20], 0xfff7
mov dword [ebp - 0x14], 0xad59e57a
push 2
lea ecx, [ebp - 0x80]
call fcn.0040a207
mov dword [ebp + 8], ebx
jmp 0x402a31
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x80]
mov dword [eax + ecx*4], 0x29bf39
inc dword [ebp + 8]
cmp dword [ebp + 8], 2
jl 0x402a21
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], edi
jg 0x402cf0
push 2
lea ecx, [ebp - 0x98]
call fcn.0040a207
mov dword [ebp - 0x1c], 0xfffffff9
push edi
lea ecx, [ebp - 0xd0]
call fcn.0040a207
mov dword [ebp + 8], ebx
mov dword [ebp + 8], ebx
jmp 0x402a84
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x98]
mov dword [eax + ecx*4], 0xfa2ef703
inc dword [ebp + 8]
cmp dword [ebp + 8], 2
jl 0x402a71
mov dword [ebp + 8], ebx
jmp 0x402aa2
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xd0]
mov dword [eax + ecx*4], 0xed99
inc dword [ebp + 8]
cmp dword [ebp + 8], edi
jl 0x402a8f
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], edi
jg 0x402cd2
mov dword [ebp + 0x10], 0x719d8726
push edi
lea ecx, [ebp - 0xb8]
call fcn.0040a207
mov dword [ebp + 8], 0x34d7aeb8
mov dword [ebp + 8], ebx
jmp 0x402ae1
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xb8]
mov dword [eax + ecx*4], edi
inc dword [ebp + 8]
cmp dword [ebp + 8], edi
jl 0x402ad2
cmp dword [ebp - 0x14], ebx
je 0x402b05
mov eax, dword [ebp - 0x98]
mov eax, dword [eax]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax + ecx*4]
mov dword [edx + esi*4], ecx
xor edx, edx
mov eax, dword [ebp - 0xb8]
cmp ecx, dword [eax]
setl dl
xor eax, eax
test edx, edx
sets al
cmp eax, dword [ebp - 0x20]
jge 0x402b3f
mov eax, dword [ebp - 0x98]
cmp dword [eax], ebx
mov eax, edi
jne 0x402b41
mov eax, ebx
imul eax, eax, 0x5558
test eax, eax
je 0x402b75
mov dword [ebp - 0x1c], ebx
jmp 0x402b6d
mov dword [ebp + 0x10], ebx
jmp 0x402b64
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x98]
mov dword [eax + ecx*4], edi
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], 2
jl 0x402b55
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 7
jl 0x402b50
jmp 0x402bb3
mov dword [ebp + 8], 0x458a
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], 0x3a
je 0x402baa
mov ecx, dword [ebp - 0x80]
mov dword [ebp + 8], 0x4457
mov dword [ebp + 0x10], 0xfe298319
mov eax, dword [ebp + 8]
mov dword [ebp + 0x10], eax
cmp dword [ecx + 4], ebx
jne 0x402baa
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x3a
jne 0x402b88
mov dword [ebp + 0x10], ebx
mov eax, dword [ebp + 0x10]
mov dword [ebp + 8], eax
mov dword [ebp + 0x10], 0xfffffffd
cmp dword [ebp + 0x10], edi
jne 0x402cbf
mov eax, dword [ebp - 0x1c]
mov dword [ebp + 8], eax
mov byte [ebp + 0xb], bl
mov dword [ebp - 0x40], 0x6fba
cmp dword [ebp - 0x40], 0x722f
jle 0x402c61
mov ecx, ebx
mov dword [ebp - 0x18], ebx
mov eax, ebx
mov dword [ebp - 0x28], ebx
mov esi, ebx
mov dword [ebp - 0x2c], ebx
cdq
idiv esi
mov eax, edx
mov dword [ebp - 0x3c], eax
cdq
idiv dword [ebp - 0x2c]
lea eax, [ecx + edx]
cdq
push edx
push eax
lea ecx, [ebp - 0x130]
call fcn.004019f8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x402c16
mov eax, dword [eax]
push eax
call fcn.0049e427
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x130]
call fcn.0040a7b5
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 0x3bc1
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
jl 0x402bf7
inc esi
cmp esi, 0x118d
mov eax, dword [ebp - 0x28]
jl 0x402bec
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0x477a
jl 0x402bea
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, 0x39eb
jl 0x402be5
cmp byte [ebp + 0xb], 0
je 0x402c6d
call dword [0xaa1448]
mov dword [ebp - 4], 6
cmp dword [ebp - 0x40], 0x6dde
jge 0x402c88
push 0xa7c5c0
call fcn.0049e427
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x402cb7
inc dword [ebp + 0x10]
jmp 0x402bba
lea ecx, [ebp - 0xb8]
call fcn.0040a2d9
inc dword [ebp - 0x14]
jmp 0x402aaa
lea ecx, [ebp - 0xd0]
call fcn.0040a2d9
lea ecx, [ebp - 0x98]
call fcn.0040a2d9
inc dword [ebp - 0x20]
jmp 0x402a40
lea ecx, [ebp - 0x80]
call fcn.0040a2d9
mov esi, dword [ebp + 0xc]
cmp dword [esi], ebx
je 0x402d06
cmp dword [ebp - 0x24], ebx
mov edx, edi
jne 0x402d08
mov edx, ebx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x9c]
mov dword [ecx], eax
cmp dword [ecx], edx
je 0x402d31
mov eax, dword [esi]
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp eax, ecx
setle dl
neg edx
mov eax, ebx
je 0x402d33
mov eax, edi
imul eax, eax, 0x946b
cmp eax, dword [ebp - 0x24]
jg 0x402d44
cmp dword [esi], ebx
mov ecx, edi
jne 0x402d46
mov ecx, ebx
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
mov dword [eax], ecx
mov dword [ebp + 0x10], 0xfe0a8eac
mov dword [ebp - 0x20], 0x6979f9f4
mov dword [ebp - 0x2c], 3
mov dword [ebp - 0x38], 0x69e0
cmp dword [ebp - 0x38], 0x6bd6
jle 0x402dd7
mov dword [ebp - 0x3c], ebx
mov edi, ebx
mov dword [ebp + 0x10], edi
mov dword [ebp - 0x40], 0x314a
mov esi, ebx
mov dword [ebp + 8], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x28], edi
and edi, esi
mov esi, ebx
mov eax, edi
or eax, esi
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
inc esi
cmp esi, 0x344
jl 0x402d90
mov esi, dword [ebp + 8]
inc esi
mov dword [ebp + 8], esi
cmp esi, 0x2789
mov edi, dword [ebp + 0x10]
jl 0x402d86
mov eax, dword [ebp - 0x3c]
add edi, eax
mov dword [ebp + 0x10], edi
dec dword [ebp - 0x40]
jne 0x402d81
inc eax
mov dword [ebp - 0x3c], eax
cmp eax, 0x70cb
jl 0x402d75
xor edi, edi
inc edi
push 3
lea ecx, [ebp - 0xe8]
call fcn.0040a207
mov dword [ebp - 4], 8
cmp dword [ebp - 0x38], 0x680d
jge 0x402e03
mov edx, 0xa7c648
mov ecx, 0xa9e1d8
call fcn.0040c865
or dword [ebp - 4], 0xffffffff
jmp 0x402e32
mov dword [ebp + 8], ebx
jmp 0x402e45
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x54], 0xdd688769
inc dword [ebp + 8]
cmp dword [ebp + 8], 3
jl 0x402e37
mov dword [ebp + 8], ebx
jmp 0x402e63
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xe8]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [ebp + 8]
cmp dword [ebp + 8], 3
jl 0x402e50
mov dword [ebp + 0x10], ebx
cmp dword [ebp + 0x10], 0xfffffffd
jg 0x40306c
push edi
lea ecx, [ebp - 0xac]
call fcn.0040a207
mov dword [ebp + 8], ebx
jmp 0x402e95
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x5c], 0x8ef6b8f
inc dword [ebp + 8]
cmp dword [ebp + 8], 2
jl 0x402e87
mov dword [ebp + 8], ebx
jmp 0x402eb3
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xac]
mov dword [eax + ecx*4], 0xef23e469
inc dword [ebp + 8]
cmp dword [ebp + 8], edi
jl 0x402ea0
mov dword [ebp - 0x58], ebx
cmp dword [ebp - 0x58], 2
jg 0x403059
mov dword [ebp - 0x14], 0xf30836b1
mov dword [ebp + 8], 0xfffffffa
mov dword [ebp + 8], 0xfffffffd
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 2
jg 0x403051
mov dword [ebp - 0x18], 0xa61eefb6
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], 2
jg 0x403049
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x54], ebx
je 0x402f1c
mov dword [ebp + 8], 9
cmp dword [ebp - 0x14], ebx
jne 0x403049
dec dword [ebp + 8]
jmp 0x403041
mov dword [ebp - 0x38], 0x4a72
cmp dword [ebp - 0x38], 0x4c63
jle 0x402f85
mov eax, ebx
mov dword [ebp - 0x28], ebx
mov esi, ebx
add eax, esi
mov dword [ebp + 8], eax
mov dword [ebp - 0x3c], 0x2d37
mov ecx, ebx
mov dword [ebp - 0x40], ebx
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xa9e1d8
call fcn.00409fdf
mov ecx, dword [ebp - 0x40]
inc ecx
mov dword [ebp - 0x40], ecx
cmp ecx, 0x1045
mov eax, dword [ebp + 8]
jl 0x402f44
dec eax
mov dword [ebp + 8], eax
dec dword [ebp - 0x3c]
jne 0x402f3f
inc esi
cmp esi, 0x251c
mov eax, dword [ebp - 0x28]
jl 0x402f33
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0xb31
jl 0x402f31
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], 0
je 0x402fb6
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x8dc
push 0x863
push 0x1651
push 0x23ce
push 0x21ab
call dword [0xaa1078]
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x38], 0x48dd
jge 0x402fd5
mov edx, 0xa7c6b0
mov ecx, 0xa9e1d8
call fcn.0040c865
or dword [ebp - 4], 0xffffffff
jmp 0x403004
mov dword [ebp + 8], 2
cmp dword [ebp + 8], ebx
jl 0x403041
mov dword [ebp - 0x40], 9
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x54], ebx
je 0x40302d
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x54]
mov eax, dword [ebp - 0xac]
mov dword [eax], 0x9c9d9403
mov eax, dword [ebp - 0x58]
dec dword [ebp + 8]
jns 0x403010
inc dword [ebp - 0x18]
jmp 0x402ef1
inc dword [ebp - 0x14]
jmp 0x402edd
inc dword [ebp - 0x58]
jmp 0x402ebb
lea ecx, [ebp - 0xac]
call fcn.0040a2d9
dec dword [ebp + 0x10]
jmp 0x402e6c
cmp dword [ebp - 0x20], ebx
jne 0x40307a
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp ecx, eax
setl dl
xor ecx, ecx
cmp edx, 0xeb13
setle cl
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [ebp + 0x10], ecx
lea ecx, [ebp - 0xe8]
call fcn.0040a2d9
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x44]
dec dword [eax]
jmp 0x4029f2
mov dword [ebp + 0xc], 0xa53d06ce
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], 0
je 0x4030f5
push ebx
push 0x1498
call dword [0xaa1514]
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], 0
je 0x403109
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [0xaa1044]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret