Function at 0x407bc0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push ebx
push esi
push edi
mov dword [ebp - 4], 0x2a
mov eax, dword [0x41059c]
or al, 0x39
mov ecx, dword [0x4105a8]
and ecx, eax
mov dword [0x4105a8], ecx
mov dword [ebp - 0x14], 0x39
mov edx, dword [0x410590]
xor eax, eax
cmp edx, dword [0x41058c]
setge al
mov ecx, dword [0x4105a0]
sub ecx, eax
mov dword [0x4105a0], ecx
mov edx, dword [ebp - 4]
or edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
or eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
and ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
xor edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 4]
je 0x407c42
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 0x14]
setge dl
mov eax, dword [ebp - 0x14]
and eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
or edx, 0xffffffdd
mov eax, dword [ebp - 0x14]
xor eax, edx
mov dword [ebp - 0x14], eax
mov edx, 0xffffffc5
mov ecx, dword [ebp - 4]
shl edx, cl
mov eax, dword [ebp - 4]
mov ecx, edx
sar eax, cl
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
sar edx, cl
mov eax, dword [ebp - 4]
mov ecx, edx
sar eax, cl
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 4]
add eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x14]
xor edx, 0x23
mov eax, dword [ebp - 0x14]
add eax, edx
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
shl edx, cl
test edx, edx
je 0x407cc2
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, dword [ebp - 0x14]
setne cl
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, 5
test eax, eax
je 0x407cdc
xor ecx, ecx
cmp dword [ebp - 0x14], 0xffffffc8
sete cl
mov edx, dword [ebp - 4]
and edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
or eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 4], 0x20
jge 0x407d12
mov edx, dword [ebp - 4]
and edx, 0xffffffc1
mov eax, dword [ebp - 0x14]
xor eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
or ecx, 0x35
mov edx, dword [ebp - 4]
add edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
and eax, 0x30
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x14], ecx
xor edx, edx
cmp dword [ebp - 4], 0x22
setle dl
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
or ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
and edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
xor eax, dword [ebp - 4]
test eax, eax
je 0x407d67
mov ecx, 0xffffffdc
sub ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
add edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
or eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
add ecx, eax
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
xor ecx, 0x30
mov edx, dword [ebp - 4]
sar edx, cl
mov dword [ebp - 4], edx
cmp dword [ebp - 0x14], 0x2a
je 0x407d96
mov eax, dword [ebp - 4]
and al, 0xc1
mov ecx, dword [ebp - 4]
add ecx, eax
mov dword [ebp - 4], ecx
mov edx, 0x21
test edx, edx
je 0x407dad
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
add ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
xor eax, eax
cmp edx, dword [ebp - 4]
setg al
mov ecx, dword [ebp - 0x14]
add ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
add edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
or eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
xor edx, edx
cmp dword [ebp - 0x14], 0xffffffd2
setg dl
mov eax, dword [ebp - 0x14]
add eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
imul ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
xor edx, ecx
mov dword [ebp - 4], edx
xor eax, eax
cmp dword [ebp - 0x14], 0xffffffc8
sete al
mov ecx, dword [ebp - 4]
xor ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
add edx, 0x32
mov eax, dword [ebp - 4]
or eax, edx
mov dword [ebp - 4], eax
mov ecx, 0xffffffc8
sub ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
sar edx, cl
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0xffffffca
jne 0x407e37
mov ecx, dword [ebp - 0x14]
xor ecx, 0xffffffd3
mov eax, dword [ebp - 0x14]
shl eax, cl
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
and edx, ecx
mov dword [ebp - 4], edx
cmp dword [ebp - 0x14], 0x38
jne 0x407e59
mov eax, dword [ebp - 0x14]
add eax, 0x22
mov ecx, dword [ebp - 0x14]
and ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
or edx, dword [ebp - 4]
test edx, edx
je 0x407e76
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setl cl
mov edx, dword [ebp - 4]
or edx, ecx
mov dword [ebp - 4], edx
xor eax, eax
cmp dword [ebp - 0x14], 0x21
setge al
mov ecx, dword [ebp - 0x14]
and ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
or edx, 0x37
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
or eax, dword [ebp - 4]
test eax, eax
je 0x407ead
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 4]
setg dl
mov eax, dword [ebp - 0x14]
xor eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x407ec5
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
shl edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setl cl
mov edx, dword [ebp - 0x14]
sar edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 4]
jge 0x407ef1
xor ecx, ecx
cmp dword [ebp - 4], 0x3c
setg cl
mov edx, dword [ebp - 4]
or edx, ecx
mov dword [ebp - 4], edx
xor eax, eax
test eax, eax
je 0x407f06
mov ecx, dword [ebp - 4]
imul ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
or edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, dword [ebp - 4]
sete cl
mov edx, dword [ebp - 0x14]
or edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setge cl
mov edx, dword [ebp - 4]
xor edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setl cl
mov edx, dword [ebp - 4]
or edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
shl eax, 0x20
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
shl edx, cl
mov eax, dword [ebp - 0x14]
mov ecx, edx
sar eax, cl
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
or ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x407f72
mov edx, dword [ebp - 4]
sub edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
xor eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 4]
jle 0x407f8d
mov edx, dword [ebp - 0x14]
xor eax, eax
cmp edx, dword [ebp - 0x14]
setl al
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
or edx, 0x20
mov eax, dword [ebp - 0x14]
add eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
xor ecx, 0x20
mov edx, dword [ebp - 0x14]
sar edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
sar eax, cl
test eax, eax
je 0x407fc3
mov ecx, dword [ebp - 4]
xor ecx, 0x3c
mov edx, dword [ebp - 0x14]
xor edx, ecx
mov dword [ebp - 0x14], edx
mov eax, 0x3f
test eax, eax
je 0x407fdf
mov ecx, dword [ebp - 0x14]
xor edx, edx
cmp ecx, dword [ebp - 0x14]
setne dl
mov eax, dword [ebp - 0x14]
and eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
or ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
or edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
shl eax, cl
test eax, eax
je 0x408001
mov ecx, dword [ebp - 4]
sar ecx, 1
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
xor ecx, ecx
cmp edx, dword [ebp - 0x14]
setl cl
mov eax, dword [ebp - 4]
shl eax, cl
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x14]
and ecx, 0xffffffd8
mov edx, dword [ebp - 4]
and edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
shl eax, cl
mov ecx, dword [ebp - 0x14]
or ecx, eax
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 0x25
mov edx, dword [ebp - 0x14]
shl edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
add eax, 0x12
mov dword [ebp - 4], eax
xor ecx, ecx
cmp dword [ebp - 0x14], 0x39
setge cl
mov edx, dword [ebp - 4]
add edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 4]
test eax, eax
je 0x408073
mov ecx, dword [ebp - 4]
or ecx, 0x23
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
and eax, 0x35
mov ecx, dword [ebp - 4]
add ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
xor eax, eax
cmp edx, dword [ebp - 4]
setne al
mov ecx, dword [ebp - 4]
and ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x14]
jle 0x4080aa
mov eax, dword [ebp - 4]
xor eax, 0xffffffcd
mov ecx, dword [ebp - 0x14]
add ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
sub edx, 0x3d
test edx, edx
je 0x4080c7
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, dword [ebp - 0x14]
setge cl
mov edx, dword [ebp - 0x14]
add edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
or eax, 0xffffffc3
mov ecx, dword [ebp - 4]
and ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
sub edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
xor eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
shl edx, cl
mov dword [ebp - 0x14], edx
xor eax, eax
cmp dword [ebp - 0x14], 0x2d
sete al
mov ecx, dword [ebp - 0x14]
add ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
xor eax, eax
cmp edx, dword [ebp - 0x14]
setge al
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
mov dword [ebp - 4], edx
mov eax, 0xffffffeb
test eax, eax
je 0x408132
mov ecx, dword [ebp - 0x14]
and ecx, 0x3f
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
and al, 0xc7
test eax, eax
je 0x40814e
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 4]
setg dl
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x14]
and ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
sar edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
sub eax, 1
mov dword [ebp - 4], eax
xor ecx, ecx
cmp dword [ebp - 0x14], 0xffffffd2
setl cl
mov edx, dword [ebp - 0x14]
xor edx, ecx
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x14]
add ecx, 0x23
mov eax, dword [ebp - 4]
shl eax, cl
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
or edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, dword [ebp - 0x14]
sete cl
mov edx, dword [ebp - 0x14]
sub edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
sar eax, cl
mov ecx, dword [ebp - 4]
sub ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
sar edx, cl
mov eax, dword [ebp - 4]
mov ecx, edx
shl eax, cl
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
add ecx, 0x2a
test ecx, ecx
je 0x4081df
mov edx, dword [ebp - 4]
add edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
xor eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 0x14]
setne dl
mov eax, dword [ebp - 4]
add eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 4]
jne 0x40820d
mov edx, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, dword [ebp - 4]
setl cl
mov eax, dword [ebp - 4]
sar eax, cl
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
sar edx, cl
mov eax, dword [ebp - 4]
sub eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x14]
xor ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
and eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
add ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x3c]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 4]
setge dl
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
mov ecx, 1
test ecx, ecx
je 0x40826f
xor edx, edx
cmp dword [ebp - 0x14], 0x2c
setle dl
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x14]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 0x14]
setl dl
mov eax, dword [ebp - 0x14]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x14], eax
xor ecx, ecx
cmp dword [ebp - 0x14], 0x30
setle cl
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
or eax, dword [ebp - 4]
test eax, eax
je 0x4082ba
mov ecx, dword [ebp - 4]
add ecx, 0x1c
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
sar edx, cl
mov eax, dword [ebp - 0x14]
sub eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0x28
mov edx, dword [ebp - 4]
or edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x14]
xor edx, edx
cmp ecx, dword [ebp - 0x14]
setge dl
mov eax, dword [ebp - 4]
xor eax, edx
mov dword [ebp - 4], eax
xor ecx, ecx
cmp dword [ebp - 0x14], 0x34
sete cl
mov edx, dword [ebp - 0x14]
shl edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0x32
test ecx, ecx
je 0x408325
mov edx, 0xffffffdb
sub edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
add eax, edx
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
shl edx, cl
test edx, edx
je 0x408342
xor ecx, ecx
cmp dword [ebp - 0x14], 0x2a
setne cl
mov eax, dword [ebp - 4]
sar eax, cl
mov dword [ebp - 4], eax
mov ecx, 1
test ecx, ecx
je 0x408354
mov edx, dword [ebp - 0x14]
sub edx, 1
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, dword [ebp - 0x14]
setne cl
mov edx, dword [ebp - 4]
sub edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x20]
add eax, 0x78
mov dword [ebp - 0x28], eax
xor ecx, ecx
cmp dword [ebp - 4], 0x39
sete cl
mov edx, dword [ebp - 4]
xor edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
and eax, 0x3d
mov ecx, dword [ebp - 4]
add ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
imul edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
add eax, edx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 4], 0xffffffc5
je 0x4083b7
mov ecx, dword [ebp - 0x14]
xor edx, edx
cmp ecx, dword [ebp - 0x14]
setl dl
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0xffffffc7
mov edx, dword [ebp - 0x14]
sub edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov dword [ebp - 0x30], ecx
xor edx, edx
cmp dword [ebp - 0x14], 0xffffffd6
setle dl
mov eax, dword [ebp - 0x14]
and eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
sar ecx, 0x3a
mov edx, dword [ebp - 0x14]
add edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 4]
je 0x408403
mov ecx, dword [ebp - 0x14]
imul ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
sar edx, cl
mov dword [ebp - 4], edx
cmp dword [ebp - 0x14], 0x31
jle 0x408417
mov eax, dword [ebp - 4]
or eax, 0xffffffd7
mov ecx, dword [ebp - 0x14]
or ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
or edx, 0xffffffc8
mov eax, dword [ebp - 0x14]
sub eax, edx
mov dword [ebp - 0x14], eax
xor ecx, ecx
cmp dword [ebp - 4], 0xffffffc8
setg cl
mov edx, dword [ebp - 0x14]
add edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x30], eax
xor ecx, ecx
cmp dword [ebp - 4], 0x3e
setg cl
mov edx, dword [ebp - 0x14]
or edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
sub eax, 1
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
shl edx, cl
mov eax, dword [ebp - 0x14]
sub eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
shl edx, 6
mov dword [ebp - 4], edx
cmp dword [ebp - 0x14], 0xffffffd6
jne 0x40848f
xor ecx, ecx
cmp dword [ebp - 0x14], 0x24
setl cl
mov eax, dword [ebp - 0x14]
shl eax, cl
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
shl edx, cl
mov eax, dword [ebp - 0x14]
mov ecx, edx
shl eax, cl
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 4]
and eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
sub ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x14]
add edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
or eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0x28
test ecx, ecx
je 0x4084d9
mov edx, dword [ebp - 0x14]
shl edx, 0x28
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
and eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
and ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x14]
or edx, 0x2d
mov eax, dword [ebp - 0x14]
and eax, edx
mov dword [ebp - 0x14], eax
xor ecx, ecx
cmp dword [ebp - 4], 0x3b
setl cl
mov edx, dword [ebp - 0x14]
sar edx, cl
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0x34
jne 0x40851a
mov eax, dword [ebp - 4]
and eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
or ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
and edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
add eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x2c]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 4]
or edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
or eax, edx
mov dword [ebp - 0x14], eax
xor ecx, ecx
cmp dword [ebp - 4], 0x27
setge cl
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
cmp dword [ebp - 0x14], 0xffffffce
jge 0x408567
xor eax, eax
cmp dword [ebp - 4], 0xffffffc5
setg al
mov ecx, dword [ebp - 0x14]
or ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
and edx, 0x22
mov eax, dword [ebp - 4]
or eax, edx
mov dword [ebp - 4], eax
xor ecx, ecx
cmp dword [ebp - 0x14], 0x2f
setl cl
mov edx, dword [ebp - 4]
sub edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
sub eax, 0x28
mov ecx, dword [ebp - 4]
xor ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
imul edx, edx, 0x29
test edx, edx
je 0x4085ac
mov eax, dword [ebp - 4]
imul eax, eax, 0x35
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x14]
and ecx, 0x3f
mov edx, dword [ebp - 0x14]
shl edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, dword [ebp - 0x14]
setne cl
mov edx, dword [ebp - 4]
sub edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 0x14]
setl cl
mov edx, dword [ebp - 4]
or edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
sub ecx, eax
mov dword [ebp - 4], ecx
cmp dword [ebp - 0x14], 0x32
jle 0x408609
mov edx, dword [ebp - 0x14]
xor edx, 0x762
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
and eax, 0x3c
test eax, eax
je 0x408621
mov ecx, dword [ebp - 0x14]
shl ecx, 0x2c
mov edx, dword [ebp - 0x14]
and edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
shl eax, 0x3e
mov ecx, dword [ebp - 4]
xor ecx, eax
mov dword [ebp - 4], ecx
mov dword [ebp - 0x1c], 0
mov edx, dword [ebp - 0x14]
or edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
and eax, edx
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
sar edx, cl
mov eax, dword [ebp - 0x14]
or eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 0x14]
setge dl
mov eax, dword [ebp - 0x14]
sub eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
sar ecx, 0xc8
test ecx, ecx
je 0x408682
xor ecx, ecx
cmp dword [ebp - 4], 0xffffffc8
setne cl
mov edx, dword [ebp - 4]
sar edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
shl eax, 0xc5
test eax, eax
je 0x40869c
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 0x14]
or eax, edx
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
sar edx, cl
mov eax, dword [ebp - 4]
sub eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
and ecx, 0x2b
mov edx, dword [ebp - 0x14]
or edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
xor eax, 0x2d
mov ecx, dword [ebp - 0x14]
add ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 4]
test edx, edx
je 0x4086e0
mov ecx, dword [ebp - 4]
or ecx, 0x3c
mov eax, dword [ebp - 4]
shl eax, cl
mov dword [ebp - 4], eax
mov edx, 0x3f
mov ecx, dword [ebp - 4]
sar edx, cl
mov eax, dword [ebp - 0x14]
and eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0x2d
test ecx, ecx
je 0x408702
mov edx, dword [ebp - 4]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 0x14]
setl cl
mov edx, dword [ebp - 4]
add edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x14]
test eax, eax
je 0x408733
mov ecx, dword [ebp - 0x14]
xor edx, edx
cmp ecx, dword [ebp - 4]
setge dl
mov eax, dword [ebp - 0x14]
and eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 4]
jle 0x408749
mov edx, dword [ebp - 4]
xor edx, 0xffffffc3
mov eax, dword [ebp - 0x14]
or eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov ecx, 0x22
sub ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x408772
mov ecx, dword [ebp - 4]
imul ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
sar edx, cl
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
shl eax, cl
mov dword [ebp - 0x14], eax
mov ecx, 0x2a
sub ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
sub edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x14]
je 0x4087ab
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 0x14]
setne dl
mov eax, dword [ebp - 4]
xor eax, edx
mov dword [ebp - 4], eax
xor ecx, ecx
test ecx, ecx
je 0x4087ba
mov edx, dword [ebp - 4]
sar edx, 0xf8
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
shl edx, cl
test edx, edx
je 0x4087dd
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
and ecx, eax
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0x14]
xor ecx, 0x32
mov edx, dword [ebp - 0x14]
sar edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
and eax, dword [ebp - 0x14]
test eax, eax
je 0x4087fb
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
or edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
add eax, edx
mov dword [ebp - 0x14], eax
xor ecx, ecx
cmp dword [ebp - 4], 0xffffffd5
setne cl
mov edx, dword [ebp - 0x14]
sar edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x14]
jl 0x408830
mov ecx, dword [ebp - 0x14]
xor ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
sar edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
sar eax, 0xd7
test eax, eax
je 0x408848
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
and edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x14]
jne 0x40885e
mov ecx, dword [ebp - 0x14]
sar ecx, 0xc3
mov edx, dword [ebp - 0x14]
sar edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
imul eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0x14]
je 0x408883
mov eax, dword [ebp - 4]
or eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
sub ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x34]
push edx
call fcn.00401d70
add esp, 4
mov dword [ebp - 8], eax
xor eax, eax
cmp dword [ebp - 4], 0x2b
setne al
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 4]
jl 0x4088bc
xor ecx, ecx
cmp dword [ebp - 0x14], 0x2e
sete cl
mov eax, dword [ebp - 0x14]
shl eax, cl
mov dword [ebp - 0x14], eax
xor ecx, ecx
cmp dword [ebp - 4], 0x3e
setge cl
mov edx, dword [ebp - 0x14]
xor edx, ecx
mov dword [ebp - 0x14], edx
mov eax, 0x2c
mov ecx, dword [ebp - 4]
sar eax, cl
mov ecx, dword [ebp - 0x14]
and ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
or edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
and eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
shl ecx, 0xca
test ecx, ecx
je 0x408908
xor edx, edx
cmp dword [ebp - 4], 0x31
setl dl
mov eax, dword [ebp - 0x14]
and eax, edx
mov dword [ebp - 0x14], eax
xor ecx, ecx
cmp dword [ebp - 4], 0xffffffd3
setg cl
mov edx, dword [ebp - 0x14]
add edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 4]
jne 0x408936
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 4]
setg dl
mov eax, dword [ebp - 4]
mov ecx, edx
sar eax, cl
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 8]
xor ecx, 0xe84f77e
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x14]
xor edx, dword [ebp - 0x14]
test edx, edx
je 0x40895a
mov ecx, dword [ebp - 0x14]
sar ecx, 0x3f
mov eax, dword [ebp - 4]
shl eax, cl
mov dword [ebp - 4], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
sar edx, cl
mov eax, dword [ebp - 4]
sub eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x408981
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
lea ecx, [eax + edx - 0x22]
mov dword [ebp - 4], ecx
mov edx, 0x27
mov ecx, dword [ebp - 4]
shl edx, cl
mov eax, dword [ebp - 4]
xor eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x14]
jl 0x4089ac
xor edx, edx
cmp dword [ebp - 4], 0xffffffcc
setl dl
mov eax, dword [ebp - 0x14]
or eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
and ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x4089c4
mov edx, dword [ebp - 4]
add edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
and eax, edx
mov dword [ebp - 0x14], eax
mov ecx, 0xffffffd3
sub ecx, dword [ebp - 4]
test ecx, ecx
je 0x4089de
mov edx, dword [ebp - 4]
xor edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
xor eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
and ecx, 0x678
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 8]
jne 0x40904b
mov ecx, 0x3c
sub ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
shl eax, cl
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
imul ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x408a23
mov edx, 0x3a
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 4]
sub eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x14]
xor ecx, 0xffffffe0
mov edx, dword [ebp - 4]
sar edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
and eax, dword [ebp - 4]
test eax, eax
je 0x408a49
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
xor edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 4]
test eax, eax
je 0x408a61
mov ecx, dword [ebp - 4]
sub ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
and edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
and eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
and ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
imul edx, edx, 0xffffffd1
mov eax, dword [ebp - 0x14]
sub eax, edx
mov dword [ebp - 0x14], eax
mov ecx, 0xffffffd0
test ecx, ecx
je 0x408a94
mov ecx, dword [ebp - 0x14]
xor ecx, 0x3e
mov edx, dword [ebp - 0x14]
shl edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x14]
xor eax, eax
cmp edx, dword [ebp - 0x14]
setge al
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
shl edx, cl
test edx, edx
je 0x408acf
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setge cl
mov edx, dword [ebp - 0x14]
and edx, ecx
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x14]
sar ecx, 0xc5
mov eax, dword [ebp - 0x14]
sar eax, cl
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x408af8
xor ecx, ecx
cmp dword [ebp - 0x14], 0xffffffd6
setl cl
mov edx, dword [ebp - 0x14]
shl edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
sar eax, cl
mov ecx, dword [ebp - 0x14]
and ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, dword [ebp - 4]
setg cl
mov eax, dword [ebp - 0x14]
sar eax, cl
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x18]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x14]
xor edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
xor eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
or edx, ecx
mov dword [ebp - 0x14], edx
cmp dword [ebp - 4], 0x2f
jge 0x408b58
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
sar eax, cl
mov edx, dword [ebp - 0x14]
mov ecx, eax
shl edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 4]
jge 0x408b73
mov ecx, dword [ebp - 0x14]
xor edx, edx
cmp ecx, dword [ebp - 0x14]
setne dl
mov eax, dword [ebp - 4]
or eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x14]
sub ecx, 0x37
test ecx, ecx
je 0x408b8b
mov ecx, dword [ebp - 0x14]
sar ecx, 0x26
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, 0x52
test eax, eax
je 0x408ba7
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 0x14]
setl dl
mov eax, dword [ebp - 0x14]
xor eax, edx
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
shl edx, cl
mov eax, dword [ebp - 4]
xor eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 0x38
test ecx, ecx
je 0x408bd3
mov edx, 0x3b
mov ecx, dword [ebp - 4]
shl edx, cl
mov eax, dword [ebp - 4]
xor eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x14]
xor ecx, 0xffffffd7
test ecx, ecx
je 0x408beb
mov ecx, dword [ebp - 0x14]
or ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
xor eax, 0x26
mov ecx, dword [ebp - 4]
and ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
lea ecx, [eax + edx*2]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x14]
imul ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
shl edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 4]
setl cl
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
xor eax, eax
cmp dword [ebp - 4], 0x3d
setle al
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
or ecx, 0x36
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
imul eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
xor ecx, eax
mov dword [ebp - 4], ecx
cmp dword [ebp - 0x14], 0xffffffcd
jge 0x408c6c
xor ecx, ecx
cmp dword [ebp - 0x14], 0x20
setne cl
mov edx, dword [ebp - 0x14]
shl edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x14]
jl 0x408c89
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 0x14]
setl dl
mov eax, dword [ebp - 4]
mov ecx, edx
shl eax, cl
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x14]
xor edx, edx
cmp ecx, dword [ebp - 4]
setl dl
mov eax, dword [ebp - 4]
add eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x14]
or ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x408caf
mov edx, dword [ebp - 4]
or edx, 0x1c
mov dword [ebp - 4], edx
xor ecx, ecx
cmp dword [ebp - 0x14], 0x3e
setg cl
mov eax, dword [ebp - 0x14]
shl eax, cl
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov dx, word [ecx]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 4]
or eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
and ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
shl edx, cl
mov eax, dword [ebp - 4]
xor eax, edx
mov dword [ebp - 4], eax
mov edx, 0xffffffcf
mov ecx, dword [ebp - 0x14]
sar edx, cl
mov eax, dword [ebp - 0x14]
mov ecx, edx
sar eax, cl
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
sub ecx, 0x26
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0x14]
add ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
sar edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
sar eax, 0xb
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x18]
shl ecx, 2
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 4]
and ecx, 0x2a
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
shl eax, cl
test eax, eax
je 0x408d51
xor ecx, ecx
cmp dword [ebp - 0x14], 0x3e
sete cl
mov edx, dword [ebp - 4]
add edx, ecx
mov dword [ebp - 4], edx
xor eax, eax
test eax, eax
je 0x408d6a
mov ecx, dword [ebp - 0x14]
xor edx, edx
cmp ecx, dword [ebp - 4]
setge dl
mov eax, dword [ebp - 0x14]
xor eax, edx
mov dword [ebp - 0x14], eax
xor ecx, ecx
cmp dword [ebp - 4], 0xffffffda
setl cl
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
sub eax, 0x898
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x18]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 4]
add eax, 0x26
test eax, eax
je 0x408daa
mov ecx, dword [ebp - 4]
xor ecx, 0x21
mov edx, dword [ebp - 0x14]
and edx, ecx
mov dword [ebp - 0x14], edx
mov eax, 0x30
mov ecx, dword [ebp - 4]
shl eax, cl
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, 0x31
mov ecx, dword [ebp - 4]
sar edx, cl
mov eax, dword [ebp - 0x14]
and eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
xor ecx, 0x2c
mov edx, dword [ebp - 0x14]
sar edx, cl
mov dword [ebp - 0x14], edx
mov eax, 0x30
mov ecx, dword [ebp - 4]
sar eax, cl
mov edx, dword [ebp - 0x14]
mov ecx, eax
sar edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x14]
test eax, eax
je 0x408e08
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
and edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 0x14]
setg cl
mov edx, dword [ebp - 4]
or edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 4]
sar ecx, 0x22
mov edx, dword [ebp - 4]
sar edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x14]
jl 0x408e48
mov ecx, dword [ebp - 0x14]
add ecx, 0x3e
mov edx, dword [ebp - 4]
sub edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
sar eax, cl
mov edx, dword [ebp - 0x14]
mov ecx, eax
shl edx, cl
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 4]
xor ecx, 0x23
mov eax, dword [ebp - 4]
shl eax, cl
mov dword [ebp - 4], eax
xor ecx, ecx
cmp dword [ebp - 0x14], 0x26
sete cl
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
imul eax, eax, 0x25
test eax, eax
je 0x408e98
mov ecx, dword [ebp - 0x14]
xor edx, edx
cmp ecx, dword [ebp - 4]
setl dl
mov eax, dword [ebp - 0x14]
mov ecx, edx
sar eax, cl
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
sub ecx, dword [ebp - 4]
test ecx, ecx
je 0x408eb3
xor edx, edx
cmp dword [ebp - 0x14], 0xffffffd3
setl dl
mov eax, dword [ebp - 4]
sub eax, edx
mov dword [ebp - 4], eax
xor ecx, ecx
cmp dword [ebp - 4], 0x3b
setge cl
mov edx, dword [ebp - 0x14]
shl edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 4]
je 0x408edc
mov ecx, 0x37
sub ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
shl edx, cl
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0x32
mov eax, dword [ebp - 0x14]
sar eax, cl
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 4]
test eax, eax
je 0x408f0e
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
shl edx, cl
mov eax, dword [ebp - 4]
mov ecx, edx
sar eax, cl
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
or edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
or eax, 0xffffffda
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 4]
test edx, edx
je 0x408f45
xor eax, eax
cmp dword [ebp - 4], 0xffffffd6
setne al
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov dword [ebp - 0x14], ecx
xor ecx, ecx
cmp dword [ebp - 0x14], 0xffffffde
setg cl
mov edx, dword [ebp - 4]
sar edx, cl
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
and al, 0xdd
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
or edx, 1
mov dword [ebp - 0x14], edx
xor ecx, ecx
cmp dword [ebp - 0x14], 0xffffffc9
setl cl
mov eax, dword [ebp - 4]
shl eax, cl
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 4]
setge dl
mov eax, dword [ebp - 0x14]
xor eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x18]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0x3b
mov edx, dword [ebp - 0x14]
sar edx, cl
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
xor eax, 0xffffffda
test eax, eax
je 0x408fbf
mov ecx, dword [ebp - 0x14]
or ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
add edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
xor eax, 0x32
test eax, eax
je 0x408fdc
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 0x14]
setne dl
mov eax, dword [ebp - 4]
or eax, edx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
imul ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x408ffa
mov edx, dword [ebp - 0x14]
xor eax, eax
cmp edx, dword [ebp - 4]
setge al
mov ecx, dword [ebp - 0x14]
or ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
sar edx, cl
test edx, edx
je 0x409019
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp eax, dword [ebp - 0x14]
setl cl
mov edx, dword [ebp - 4]
sar edx, cl
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 0xffffffd1
jg 0x409026
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
shl eax, cl
test eax, eax
je 0x409043
xor ecx, ecx
cmp dword [ebp - 0x14], 0xffffffd6
setle cl
mov edx, dword [ebp - 4]
and edx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x18]
jmp 0x4092e1
mov eax, dword [ebp - 0x14]
xor eax, 0xffffffe8
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
sar edx, cl
mov eax, dword [ebp - 0x14]
or eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
xor edx, edx
cmp ecx, dword [ebp - 0x14]
setg dl
mov eax, dword [ebp - 0x14]
add eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
add ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
mov eax, 1
test eax, eax
je 0x40909c
mov ecx, dword [ebp - 0x14]
add ecx, 0x39
mov edx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 4], edx
xor eax, eax
cmp dword [ebp - 0x14], 0x22
sete al
mov ecx, dword [ebp - 0x14]
xor ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
xor eax, eax
cmp edx, dword [ebp - 4]
setl al
mov ecx, dword [ebp - 0x14]
or ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
xor eax, eax
cmp edx, dword [ebp - 0x14]
setl al
mov ecx, dword [ebp - 4]
and ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x14]
xor eax, eax
cmp edx, dword [ebp - 0x14]
setne al
mov ecx, dword [ebp - 4]
or ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x14]
xor edx, dword [ebp - 4]
test edx, edx
je 0x409101
xor eax, eax
cmp dword [ebp - 0x14], 0xffffffd1
setne al
mov ecx, dword [ebp - 0x14]
or ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x2c]
add edx, 4
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 4], 0x39
je 0x409122
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
shl eax, cl
mov edx, dword [ebp - 0x14]
mov ecx, eax
shl edx, cl
mov dword [ebp - 0x14], edx
mov eax, 0x3c
mov ecx, dword [ebp - 0x14]
shl eax, cl
mov ecx, dword [ebp - 4]
and ecx, eax
mov dword [ebp - 4], ecx
cmp dword [ebp - 0x14], 0x3d
jne 0x409148
mov edx, dword [ebp - 4]
imul edx, edx, 0xffffffd0
mov eax, dword [ebp - 0x14]
xor eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
or ecx, 0x30
mov edx, dword [ebp - 4]
sar edx, cl
mov dword [ebp - 4], edx
mov eax, 0x87a
test eax, eax
je 0x40916d
mov ecx, dword [ebp - 4]
sub ecx, 0x32
mov edx, dword [ebp - 0x14]
and edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
or eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
or ecx, eax
mov dword [ebp - 4], ecx
xor edx, edx
cmp dword [ebp - 4], 0x21
setg dl
mov eax, dword [ebp - 0x14]
add eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
sub ecx, 0x3f
mov edx, dword [ebp - 0x14]
sub edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x14]
or ecx, 0x3a
mov edx, dword [ebp - 0x14]
or edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
and ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x4091d7
mov edx, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, dword [ebp - 4]
setl cl
mov eax, dword [ebp - 4]
shl eax, cl
mov dword [ebp - 4], eax
cmp dword [ebp - 0x14], 0x3b
jle 0x4091f0
mov ecx, dword [ebp - 4]
xor edx, edx
cmp ecx, dword [ebp - 0x14]
setge dl
mov eax, dword [ebp - 0x14]
and eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
or edx, dword [ebp - 0x14]
test edx, edx
je 0x409211
xor eax, eax
cmp dword [ebp - 4], 0x28
sete al
mov ecx, dword [ebp - 4]
add ecx, eax
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
xor edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
add eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
xor ecx, dword [ebp - 4]
test ecx, ecx
je 0x40923c
mov edx, dword [ebp - 4]
xor eax, eax
cmp edx, dword [ebp - 0x14]
setge al
mov ecx, dword [ebp - 4]
xor ecx, eax
mov dword [ebp - 4], ecx
jmp 0x4086ba
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret