Function at 0x401c7b
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
mov eax, 0x4b53c7
call fcn.004b4fc8
sub esp, 0x1a8
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x1c], 0x9d29
mov dword [ebp - 0x20], 0x45fe46c2
mov dword [ebp - 0x24], 0x10c13fe6
xor edi, edi
inc edi
mov dword [ebp - 0x34], edi
push edi
lea ecx, [ebp - 0xd4]
call fcn.00409c99
xor ebx, ebx
mov dword [ebp - 0x18], ebx
jmp 0x401cda
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xd4]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x401ccb
mov ecx, dword [ebp - 0x1c]
neg ecx
sbb ecx, ecx
inc ecx
add ecx, dword [ebp - 0x1c]
imul ecx, dword [ebp - 0x1c]
xor eax, eax
cmp ecx, 0x7a5b7d8c
setle al
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x1c]
sub eax, ecx
neg eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp eax, ecx
setle dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setge cl
imul ecx, ecx, 0x752b
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp eax, ecx
setge dl
cmp dword [ebp - 0x20], edx
jge 0x401d5d
cmp dword [ebp - 0x20], ebx
mov ecx, ebx
je 0x401d5f
mov ecx, edi
mov eax, dword [ebp - 0x1c]
sub ecx, eax
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], ebx
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x34], eax
jne 0x401d87
cmp dword [ebp - 0x34], ebx
mov eax, ebx
je 0x401d89
mov eax, edi
xor edx, edx
cmp eax, 0xe4f
setle dl
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setl cl
mov eax, dword [ebp - 0xd4]
mov dword [eax], ecx
lea ecx, [ebp - 0xd4]
call fcn.00409d6b
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x30], 0x6dd2
mov dword [ebp - 0x18], ebx
jmp 0x401dd3
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xbc], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x401dc2
mov dword [ebp - 0xb8], 3
cmp dword [ebp - 0xb8], 0xfffffff5
jg 0x401f6d
mov dword [ebp - 0x28], 0xf390197f
mov dword [ebp - 0x18], ebx
jmp 0x401e06
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x64], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x401dfc
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], ebx
jg 0x401f62
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
jl 0x401f5a
mov dword [ebp - 0x18], ebx
jmp 0x401e3d
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x5c], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x401e2f
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x401f23
mov dword [ebp - 0x1c], 0x53f
cmp dword [ebp - 0x1c], 0x66c
jle 0x401edb
mov eax, ebx
mov dword [ebp - 0x18], ebx
mov esi, ebx
mov ecx, ebx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x44], 0x2ae4
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x24], 0xd00
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x19c]
call fcn.00401b08
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x401e97
mov eax, dword [eax]
push eax
call fcn.0049f827
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x19c]
call fcn.0040a247
mov ecx, dword [ebp - 0x34]
dec ecx
mov dword [ebp - 0x34], ecx
dec dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
jne 0x401e7d
mov ecx, dword [ebp - 0x38]
add ecx, esi
mov dword [ebp - 0x38], ecx
dec dword [ebp - 0x44]
jne 0x401e73
inc esi
cmp esi, 0x3a6b
jl 0x401e67
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x7de4
jl 0x401e65
push ebx
push ebx
call dword [0xae8040]
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x1c], 0x521
jge 0x401efa
push 0xac1008
call fcn.0049f827
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x401f23
mov dword [ebp - 0x58], ebx
jmp 0x401f4d
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x401f3c
push 0x4a2
call dword [0xae8094]
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp + eax*4 - 0x64]
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x64], ecx
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], ebx
jle 0x401f28
dec dword [ebp - 0x20]
jmp 0x401e21
inc dword [ebp - 0x28]
jmp 0x401e0e
dec dword [ebp - 0xb8]
jmp 0x401de3
mov dword [ebp - 0x28], 2
cmp dword [ebp - 0x28], 0xb
je 0x402076
mov dword [ebp - 0x4c], 0xffff
mov dword [ebp - 0x38], 0x33ef
cmp dword [ebp - 0x38], 0x34c8
jle 0x402006
mov eax, ebx
mov dword [ebp - 0x24], ebx
mov esi, ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x2c], ebx
mov edx, eax
mov ecx, esi
shl edx, cl
mov dword [ebp - 0x40], edx
mov esi, ebx
mov eax, esi
xor eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x124]
call fcn.00401b08
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x401fc9
mov eax, dword [eax]
push eax
call fcn.0049f827
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x124]
call fcn.0040a247
inc esi
cmp esi, 0x73ab
mov edx, dword [ebp - 0x40]
jl 0x401fad
mov esi, dword [ebp - 0x34]
inc esi
mov dword [ebp - 0x34], esi
cmp esi, 0x652d
mov eax, dword [ebp - 0x24]
jl 0x401f9f
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x61ac
jl 0x401f9a
mov dword [ebp - 4], 2
cmp dword [ebp - 0x38], 0x33ba
jge 0x402021
push 0xac1054
call fcn.0049f827
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x40204a
mov dword [ebp - 0x18], ebx
jmp 0x402060
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x16c], 0x188753e
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x40204f
cmp dword [ebp - 0x4c], ebx
jne 0x402076
inc dword [ebp - 0x30]
inc dword [ebp - 0x28]
jmp 0x401f74
mov dword [ebp - 0x30], 8
mov dword [ebp - 0x30], 4
mov dword [ebp - 0x1c], 0x41fc9a57
push 2
lea ecx, [ebp - 0xec]
call fcn.00409c99
mov dword [ebp - 0x30], 0xf45b6d4f
mov dword [ebp - 0x2c], 0xfffffffa
mov dword [ebp - 0x3c], 0x95534fd3
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x20], ebx
jmp 0x4020c4
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xec]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x4020b5
mov dword [ebp - 0x20], ebx
jmp 0x4020e0
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x88], 0x1971
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x4020cf
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, 0xc4ddb84c
setne cl
cmp ecx, dword [ebp - 0x1c]
je 0x4020fb
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xec]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x30], 0xfffffffc
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x80]
sub ecx, dword [ebp - 0x88]
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp eax, ecx
setge dl
add edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x88]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, 0x673ed132
setg cl
sub ecx, dword [ebp - 0x88]
neg ecx
sbb ecx, ecx
inc ecx
xor edx, edx
cmp ecx, 0xbeb9
setle dl
mov eax, dword [ebp - 0x88]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x34]
lea ecx, [ebp - 0xec]
call fcn.00409d6b
mov dword [ebp - 0x3c], 2
mov dword [ebp - 0x34], 0x4f80
cmp dword [ebp - 0x34], 0x508e
jle 0x4021e8
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x30], 0x6892
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xae4c58
call fcn.00409a6e
add edi, esi
dec dword [ebp - 0x30]
jne 0x4021c6
inc esi
cmp esi, 0x63d6
jl 0x4021bd
xor edi, edi
inc edi
mov dword [ebp - 0x20], 0x42c70bb7
mov dword [ebp - 0x24], 5
mov dword [ebp - 0x2c], 0xcb0b9d62
mov dword [ebp - 0x18], ebx
jmp 0x402210
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x48], 0xfffffff8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x402202
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
jl 0x402275
mov dword [ebp - 0x1c], 0x976ff55e
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x1c], ebx
jmp 0x40226b
mov dword [ebp - 0x30], ebx
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x40223f
push ebx
call dword [0xae8538]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp eax, edi
setle dl
sub edx, dword [ebp - 0x48]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x48]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jle 0x40222c
dec dword [ebp - 0x20]
jns 0x40221d
cmp dword [ebp - 0x48], ebx
jne 0x402286
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x24], 0x56e3
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jne 0x40229c
cmp dword [ebp - 0x48], ebx
mov edx, ebx
je 0x40229e
mov edx, edi
mov dword [ebp - 0x20], ebx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 4], 4
cmp dword [ebp - 0x34], 0x4e0b
jge 0x4022cd
mov edx, 0xac10c0
mov ecx, 0xae4c58
call fcn.0040c2f7
or dword [ebp - 4], 0xffffffff
jmp 0x4022f6
mov dword [ebp - 0x3c], 0xa4a12b57
push 2
lea ecx, [ebp - 0xb0]
call fcn.00409c99
mov dword [ebp - 0x18], ebx
jmp 0x402322
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xb0]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x40230f
mov eax, dword [ebp - 0xb0]
add eax, 4
mov dword [eax], ebx
cmp dword [eax], 2
jne 0x402437
mov dword [ebp - 0x34], 0x4629
cmp dword [ebp - 0x34], 0x4700
jle 0x4023d3
push ebx
push 0x79
call dword [0xae80a0]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov esi, ebx
mov ecx, ebx
mov dword [ebp - 0x30], ebx
mov eax, esi
cdq
idiv ecx
and edx, dword [ebp - 0x24]
xor edx, dword [ebp - 0x28]
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x13c]
call fcn.00401b08
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x40238b
mov eax, dword [eax]
push eax
call fcn.0049f827
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x13c]
call fcn.0040a247
mov ecx, dword [ebp - 0x30]
inc ecx
mov dword [ebp - 0x30], ecx
cmp ecx, 0x272e
jl 0x402366
inc esi
cmp esi, 0x6a8
jl 0x402361
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x28a5
jl 0x40235f
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0x68ff
jl 0x40235c
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x4023e3
push ebx
call dword [0xae8538]
mov dword [ebp - 4], 6
cmp dword [ebp - 0x34], 0x446c
jge 0x4023fe
push 0xac1148
call fcn.0049f827
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x402427
mov eax, dword [ebp - 0xb0]
add eax, 4
inc dword [eax]
jmp 0x402333
lea ecx, [ebp - 0xb0]
call fcn.00409d6b
mov dword [ebp - 0x3c], 0xd4914d2e
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], 0xba1a4d63
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], 0xfffffffe
mov dword [ebp - 0x38], 0x187b
cmp dword [ebp - 0x38], 0x1afb
jle 0x4024d3
mov dword [ebp - 0x34], ebx
mov eax, ebx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x30], 0x76e5
mov esi, ebx
mov ecx, esi
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x160]
call fcn.00401b08
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x40249a
mov eax, dword [eax]
push eax
call fcn.0049f827
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x160]
call fcn.0040a247
inc esi
cmp esi, 0x4efb
mov eax, dword [ebp - 0x24]
jl 0x40247e
mov esi, dword [ebp - 0x34]
add eax, esi
mov dword [ebp - 0x24], eax
dec dword [ebp - 0x30]
jne 0x40247c
inc esi
mov dword [ebp - 0x34], esi
cmp esi, 0x92c
jl 0x402470
mov dword [ebp - 0x3c], edi
mov dword [ebp - 4], 8
cmp dword [ebp - 0x38], 0x15b5
jge 0x4024f1
push 0xac1190
call fcn.0049f827
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x40251a
mov dword [ebp - 0x18], ebx
jmp 0x402530
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x10c], 0x7928fbc7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x40251f
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, 0xad43
setge cl
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x30], 0xdf1febae
sbb eax, eax
neg eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x3c], 9
mov dword [ebp - 0x20], 0xffffffff
push edi
lea ecx, [ebp - 0xe0]
call fcn.00409c99
mov dword [ebp - 0x2c], 0x1aae4b9
mov dword [ebp - 0x18], ebx
jmp 0x40259c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xe0]
mov dword [eax + ecx*4], 0x2b57
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x402589
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 8
jg 0x4026aa
mov dword [ebp - 0x18], 3
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jg 0x4026a2
mov dword [ebp - 0x28], 0x6ef9
cmp dword [ebp - 0x28], 0x6fdd
jle 0x402631
mov edi, ebx
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x34], 0x68d1
mov ecx, ebx
mov dword [ebp - 0x30], ebx
sar eax, cl
xor eax, edi
cdq
push edx
push eax
mov ecx, 0xae4c58
call fcn.00409a6e
mov ecx, dword [ebp - 0x30]
inc ecx
mov dword [ebp - 0x30], ecx
cmp ecx, 0x75a3
mov eax, dword [ebp - 0x24]
jl 0x4025e9
add eax, esi
mov dword [ebp - 0x24], eax
dec dword [ebp - 0x34]
jne 0x4025e4
inc esi
cmp esi, 0x5910
jl 0x4025d8
inc edi
cmp edi, 0x59b1
jl 0x4025d6
call dword [0xae839c]
xor edi, edi
inc edi
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x28], 0x6c50
jge 0x402650
mov edx, 0xac121c
mov ecx, 0xae4c58
call fcn.0040c2f7
or dword [ebp - 4], 0xffffffff
jmp 0x402679
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x40269a
push ebx
push ebx
push ebx
call dword [0xae8044]
inc dword [ebp - 0x18]
jmp 0x4025bb
inc dword [ebp - 0x20]
jmp 0x4025a4
mov dword [ebp - 0x20], 0xa
jmp 0x4026c3
mov dword [ebp - 0x2c], 0x70a5
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x13
jle 0x4026b3
lea ecx, [ebp - 0xe0]
call fcn.00409d6b
mov dword [ebp - 0x60], 6
mov dword [ebp - 0x20], 6
mov dword [ebp - 0x18], ebx
jmp 0x4026f8
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xc8], 0xffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x4026e7
mov dword [ebp - 0x20], 2
cmp dword [ebp - 0x20], ebx
jl 0x40275b
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x2c], 0xfffffff8
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + eax*4 - 0xc8]
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xc8], ecx
test ecx, ecx
je 0x40273a
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0xc8]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0xc8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0x20]
jns 0x40270a
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x402774
push ebx
push ebx
push ebx
push ebx
push ebx
push edi
push ebx
push ebx
push ebx
push ebx
call dword [0xae838c]
mov dword [ebp - 0x3c], 2
mov dword [ebp - 0x3c], 0xa4a12b57
mov dword [ebp - 0x3c], 0xd4914d2e
mov dword [ebp - 0x3c], 9
mov dword [ebp - 0x30], 6
inc dword [ebp - 0x30]
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x4027af
push ebx
push 0x617
call dword [0xae853c]
inc dword [ebp - 0x60]
mov dword [ebp - 0x20], 0xb65720b9
mov dword [ebp - 0x2c], 0x3dfad5be
mov dword [ebp - 0x3c], 0xcf1c
mov dword [ebp - 0x18], ebx
jmp 0x4027da
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x70], 0x34bf8f0a
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x4027cc
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x6c]
sub ecx, dword [ebp - 0x68]
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x70]
add eax, ecx
mov ecx, dword [ebp - 0x6c]
imul ecx, eax
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp eax, ecx
setg dl
inc edx
mov eax, dword [ebp - 0x68]
xor ecx, ecx
cmp edx, eax
sete cl
xor eax, eax
cmp ecx, 0xf43b
setge al
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], ebx
jmp 0x402835
cmp dword [ebp - 0x20], ebx
jne 0x40283b
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x10
jle 0x40282d
mov dword [ebp - 0x38], 0x7008
cmp dword [ebp - 0x38], 0x718b
jle 0x4028b1
call dword [0xae8564]
mov dword [ebp - 0x28], ebx
mov edi, ebx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x24], 0x5c1e
mov esi, ebx
mov dword [ebp - 0x30], ebx
mov eax, edi
cdq
idiv esi
mov edi, edx
mov esi, 0x7544
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xae4c58
call fcn.00409a6e
dec edi
dec esi
jne 0x402871
mov esi, dword [ebp - 0x30]
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x1c34
mov edi, dword [ebp - 0x34]
jl 0x402865
mov eax, dword [ebp - 0x28]
add edi, eax
mov dword [ebp - 0x34], edi
dec dword [ebp - 0x24]
jne 0x402860
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0x13be
jl 0x402854
xor edi, edi
inc edi
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x38], 0x6cb6
jge 0x4028d0
mov edx, 0xac126c
mov ecx, 0xae4c58
call fcn.0040c2f7
or dword [ebp - 4], 0xffffffff
jmp 0x4028f9
push 4
lea ecx, [ebp - 0x7c]
call fcn.00409c99
mov dword [ebp - 0x1c], 8
mov dword [ebp - 0x44], 0x759951ea
mov dword [ebp - 0x28], 0xcbeb969
mov dword [ebp - 0x40], 0xc86695cd
mov dword [ebp - 0x24], 0x4b52dd86
push 2
lea ecx, [ebp - 0xf8]
call fcn.00409c99
mov dword [ebp - 0x20], ebx
jmp 0x402948
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x7c]
mov dword [eax + ecx*4], 0xfffffffe
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x402938
mov dword [ebp - 0x20], ebx
jmp 0x402962
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xf8]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x402953
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], 3
jg 0x402c8d
mov dword [ebp - 0x4c], 6
mov dword [ebp - 0x3c], 0x448110cb
mov dword [ebp - 0x54], 0xffffffff
mov dword [ebp - 0x2c], 0x73e70d28
mov dword [ebp - 0x18], ebx
jmp 0x4029a7
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x90], 0xfffffff9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x402996
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x1c]
xor ebx, ebx
mov ecx, dword [ebp - 0x7c]
cmp dword [ecx + eax*4], 0x7059141a
sete bl
mov eax, dword [ebp - 0x44]
mov ecx, dword [ecx + edx*4]
sub ecx, eax
mov eax, dword [ebp - 0x7c]
imul ecx, dword [eax + esi*4]
mov eax, dword [ebp - 0x1c]
sub eax, ebx
neg eax
sbb eax, eax
inc eax
sub ecx, eax
mov dword [ebp - 0x28], ecx
xor ebx, ebx
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], 0xfffffffb
je 0x402c85
mov dword [ebp - 0x30], 0x593c8699
mov dword [ebp - 0x18], 0x4d91f06e
mov dword [ebp - 0x38], 0xf13bcf59
mov dword [ebp - 0x54], 0x8670fc24
mov dword [ebp - 0x20], 0xffffffff
push 4
lea ecx, [ebp - 0xa4]
call fcn.00409c99
mov dword [ebp - 0x34], 0xc437ffe
mov dword [ebp - 0x30], 0xdc46
mov dword [ebp - 0x18], ebx
jmp 0x402a5a
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xa4]
mov dword [eax + ecx*4], 0x7a557527
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x402a47
mov dword [ebp - 0x40], 0x4406
cmp dword [ebp - 0x40], 0x4791
jle 0x402a9c
mov esi, ebx
mov edi, ebx
mov eax, esi
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xae4c58
call fcn.00409a6e
inc edi
cmp edi, 0x20ee
jl 0x402a74
inc esi
cmp esi, 0x45e8
jl 0x402a72
xor edi, edi
inc edi
mov eax, dword [ebp - 0x90]
mov eax, dword [ebp - 0xa4]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, 0x92fb38ad
setg cl
sub ecx, 0x38c4
neg ecx
sbb ecx, ecx
inc ecx
imul ecx, edx
cmp ecx, edi
sbb eax, eax
inc eax
sub eax, edx
inc eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jl 0x402ae0
cmp dword [ebp - 0x1c], ebx
mov ecx, ebx
je 0x402ae2
mov ecx, edi
mov eax, dword [ebp - 0x90]
sub ecx, eax
jne 0x402aef
mov eax, dword [ebp - 0x24]
dec dword [ebp - 0x34]
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov eax, dword [ebp - 0x7c]
cmp dword [eax + 0xc], 0x4af12a83
setge cl
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x44]
xor edx, edx
cmp eax, ecx
setg dl
mov esi, dword [ebp - 0x30]
sub esi, edx
neg esi
sbb esi, esi
inc esi
imul esi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp esi, eax
setg cl
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0xf8]
mov dword [eax + 4], edx
mov dword [ebp - 0x44], edx
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x40], 0x414c
jge 0x402b76
mov edx, 0xac12e8
mov ecx, 0xae4c58
call fcn.0040c2f7
or dword [ebp - 4], 0xffffffff
jmp 0x402b9f
mov dword [ebp - 0x20], 0xffffffe7
cmp dword [ebp - 0x20], 2
je 0x402c72
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x40], 0xfffffff7
cmp dword [ebp - 0x44], ebx
je 0x402c0d
mov eax, dword [ebp - 0x1c]
sub eax, 0x351c9b63
je 0x402c0d
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setl dl
mov dword [ebp - 0x40], edx
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x40], ebx
mov edx, edi
jne 0x402c0f
mov edx, ebx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setg cl
sub ecx, dword [ebp - 0x38]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x24]
sub edx, dword [eax + ecx*4]
neg edx
sbb edx, edx
inc edx
xor ecx, ecx
cmp edx, 0x5db3
setg cl
xor edx, edx
mov eax, dword [ebp - 0x7c]
cmp ecx, dword [eax + esi*4]
setge dl
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x18], eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jne 0x402bb9
lea ecx, [ebp - 0xa4]
call fcn.00409d6b
dec dword [ebp - 0x28]
jmp 0x4029fa
inc dword [ebp - 0x1c]
jmp 0x40296b
lea ecx, [ebp - 0xf8]
call fcn.00409d6b
lea ecx, [ebp - 0x7c]
call fcn.00409d6b
mov dword [ebp - 0x38], 0x2889
mov dword [ebp - 0x44], 0xac1358
cmp dword [ebp - 0x38], 0x2a28
jle 0x402d4b
mov eax, ebx
mov dword [ebp - 0x34], ebx
mov esi, ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x3c], ebx
cdq
idiv esi
mov ecx, edx
mov dword [ebp - 0x54], ecx
mov esi, ebx
mov eax, esi
or eax, ecx
cdq
push edx
push eax
lea ecx, [ebp - 0x184]
call fcn.00401b08
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x402cee
mov eax, dword [eax]
push eax
call fcn.0049f827
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x184]
call fcn.0040a247
inc esi
cmp esi, 0x3ff9
mov ecx, dword [ebp - 0x54]
jl 0x402cd2
mov esi, dword [ebp - 0x2c]
inc esi
mov dword [ebp - 0x2c], esi
cmp esi, 0x4b53
mov eax, dword [ebp - 0x34]
jl 0x402cc5
inc eax
mov dword [ebp - 0x34], eax
cmp eax, 0x178f
jl 0x402cc0
push ebx
push 0x2536
push 0x143b
push 0x68d
push 0xdf4
push 0x14ae
call dword [0xae8084]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x30], 0x1ed5
cmp dword [ebp - 0x30], 0x2065
jle 0x402dc2
mov dword [ebp - 0x34], ebx
mov edi, ebx
mov dword [ebp - 0x4c], ebx
mov esi, ebx
mov dword [ebp - 0x40], ebx
mov eax, edi
cdq
idiv esi
mov esi, edx
mov dword [ebp - 0x2c], 0x3ccf
mov edi, dword [ebp - 0x34]
mov eax, edi
xor eax, esi
cdq
push edx
push eax
mov ecx, 0xae4c58
call fcn.00409a6e
dec esi
dec dword [ebp - 0x2c]
jne 0x402d7c
mov esi, dword [ebp - 0x40]
inc esi
mov dword [ebp - 0x40], esi
cmp esi, 0x4cdb
mov edi, dword [ebp - 0x4c]
jl 0x402d6b
inc edi
mov dword [ebp - 0x4c], edi
cmp edi, 0x5f21
jl 0x402d66
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, 0x5a4f
jl 0x402d61
xor edi, edi
inc edi
mov dword [ebp - 0x20], 0xeb905d09
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x30], 0x1ba5
jge 0x402de8
mov edx, 0xac1378
mov ecx, 0xae4c58
call fcn.0040c2f7
or dword [ebp - 4], 0xffffffff
jmp 0x402e11
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x24], 3
mov dword [ebp - 0x18], 0xffff
mov dword [ebp - 0x1c], 0xfffffffd
jmp 0x402e85
push 3
lea ecx, [ebp - 0x104]
call fcn.00409c99
mov dword [ebp - 0x3c], 0x526d2e85
mov dword [ebp - 0x3c], 0xf7bf48c4
mov dword [ebp - 0x28], ebx
jmp 0x402e5e
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x104]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x402e4f
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x402e74
push ebx
call dword [0xae8384]
inc dword [ebp - 0x24]
lea ecx, [ebp - 0x104]
call fcn.00409d6b
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x1b
jne 0x402e2f
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x24]
je 0x402e9f
cmp dword [ebp - 0x1c], edi
je 0x402e9f
cmp dword [ebp - 0x2c], ebx
mov eax, edi
jne 0x402ea1
mov eax, ebx
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setne dl
imul edx, dword [ebp - 0x1c]
test edx, edx
je 0x402fc6
cmp dword [ebp - 0x18], ebx
je 0x402fc6
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x4030ef
mov dword [ebp - 0x40], 0x35a7
cmp dword [ebp - 0x40], 0x370d
jle 0x402f71
mov edx, ebx
mov dword [ebp - 0x28], ebx
mov ecx, ebx
mov dword [ebp - 0x24], ebx
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x2c], ebx
and eax, esi
xor eax, ecx
or eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x1b4]
call fcn.00401b08
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x402f1d
mov eax, dword [eax]
push eax
call fcn.0049f827
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x1b4]
call fcn.0040a247
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 0x1872
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
jl 0x402eff
inc esi
cmp esi, 0x28cb
jl 0x402efa
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x4977
jl 0x402ef8
inc edx
mov dword [ebp - 0x28], edx
cmp edx, 0x550b
jl 0x402ef3
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [0xae804c]
push ebx
push ebx
push ebx
call dword [0xae8048]
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x40], 0x3288
jge 0x402f95
push 0xac13e0
call fcn.0049f827
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4030ef
mov dword [ebp - 0x1c], 3
cmp dword [ebp - 0x1c], 5
jne 0x4030de
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x402ffb
push 0x1263
push 0x124a
push 0x29d
push 0x584
push ebx
call dword [0xae8550]
mov dword [ebp - 0x20], 0x15
cmp dword [ebp - 0x20], 6
jge 0x4030d6
mov dword [ebp - 0x18], 0xffffffed
cmp dword [ebp - 0x18], 0x11
je 0x4030ce
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x40302d
push ebx
call dword [0xae8378]
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x4030c6
mov dword [ebp - 0x2c], 0x56a0
cmp dword [ebp - 0x2c], 0x570c
jle 0x403077
mov esi, ebx
mov edi, ebx
mov eax, esi
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
mov ecx, 0xae4c58
call fcn.00409a6e
inc edi
cmp edi, 0x6528
jl 0x40304e
inc esi
cmp esi, 0x31f0
jl 0x40304c
xor edi, edi
inc edi
push ebx
call dword [0xae8388]
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x2c], 0x5354
jge 0x40309d
mov edx, 0xac1464
mov ecx, 0xae4c58
call fcn.0040c2f7
or dword [ebp - 4], 0xffffffff
jmp 0x4030c6
inc dword [ebp - 0x18]
jmp 0x403013
dec dword [ebp - 0x20]
jmp 0x403002
inc dword [ebp - 0x1c]
jmp 0x402fcd
cmp dword [ebp - 0x1c], edi
jne 0x4030ea
cmp dword [ebp - 0x24], ebx
mov eax, ebx
jne 0x4030ec
mov eax, edi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x38], 0x2582
jge 0x403108
push dword [ebp - 0x44]
call fcn.0049f827
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x403131
mov byte [ebp - 0x4d], bl
mov dword [ebp - 0x1c], 0x1824a8c6
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x1c], 0x13
cmp dword [ebp - 0x1c], 0xfffffff9
jl 0x403220
mov dword [ebp - 0x24], 0xb1891f78
mov dword [ebp - 0x28], ebx
jmp 0x40316c
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x148], 0xffffffff
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x40315b
mov dword [ebp - 0x2c], 0x30a4
cmp dword [ebp - 0x2c], 0x3363
jle 0x4031ae
mov esi, ebx
mov edi, ebx
mov eax, esi
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xae4c58
call fcn.00409a6e
inc edi
cmp edi, 0x103d
jl 0x403186
inc esi
cmp esi, 0x45d7
jl 0x403184
xor edi, edi
inc edi
mov dword [ebp - 0x24], 2
cmp dword [ebp - 0x24], ebx
jl 0x4031d0
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x4031cb
push ebx
push ebx
call dword [0xae8394]
dec dword [ebp - 0x24]
jns 0x4031ba
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x2c], 0x2fce
jge 0x4031ef
mov edx, 0xac14d0
mov ecx, 0xae4c58
call fcn.0040c2f7
or dword [ebp - 4], 0xffffffff
jmp 0x403218
dec dword [ebp - 0x1c]
jmp 0x403145
mov dword [ebp - 0x1c], 0x17
cmp dword [ebp - 0x1c], 0xfffffff8
je 0x40338a
mov dword [ebp - 0x24], 0xb000e2e4
mov dword [ebp - 0x2c], 0x3729
cmp dword [ebp - 0x2c], 0x37e3
jle 0x40327b
mov esi, ebx
mov edi, ebx
mov eax, esi
mov ecx, edi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xae4c58
call fcn.00409a6e
inc edi
cmp edi, 0x4bff
jl 0x40324c
inc esi
cmp esi, 0x519c
jl 0x40324a
push ebx
call dword [0xae856c]
xor edi, edi
inc edi
cmp dword [ebp - 0x1c], ebx
je 0x4032a0
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x40333a
push ebx
push ebx
push ebx
push 0x210d
call dword [0xae8090]
jmp 0x40333a
mov dword [ebp - 0x34], 0x34ca
mov eax, dword [ebp - 0x24]
imul eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x34]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
add ecx, 0x1b984b82
jne 0x4032c7
cmp dword [ebp - 0x1c], ebx
mov ecx, ebx
je 0x4032c9
mov ecx, edi
mov eax, dword [ebp - 0x1c]
add eax, ecx
je 0x4032d7
cmp dword [ebp - 0x1c], ebx
mov edx, edi
jne 0x4032d9
mov edx, ebx
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp eax, 0x6cd33356
setle cl
xor eax, eax
cmp ecx, edx
setg al
xor ecx, ecx
test eax, eax
sete cl
add ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setg dl
add edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
cmp ecx, 9
setne dl
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setne cl
add ecx, 0xd437
xor eax, eax
cmp ecx, 7
setge al
dec eax
sub eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 4], 0x1a
cmp dword [ebp - 0x2c], 0x33ef
jge 0x403359
mov edx, 0xac14f0
mov ecx, 0xae4c58
call fcn.0040c2f7
or dword [ebp - 4], 0xffffffff
jmp 0x403382
dec dword [ebp - 0x1c]
jmp 0x403227
cmp byte [ebp - 0x4d], 0
je 0x40339c
push ebx
push 0x617
call dword [0xae853c]
mov eax, dword [ebp - 0x94]
cdq
mov ecx, 0x3e8
idiv ecx
mov edi, edx
mov esi, eax
mov ecx, dword [ebp - 0x98]
call fcn.00401b3c
add eax, esi
add eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret