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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa0
mov dword [esp + 0x14], ecx
mov edi, 0xe9aa47c6
mov ebx, 0xb441f633
mov eax, dword [0x44e82c]
xor eax, ebp
mov dword [esp + 0x98], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
lea eax, [esp + 0x78]
mov dword [esp + 0x80], 0
mov dword [esp + 0x94], 0xf
mov dword [esp + 0x90], 0
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [0x44f568]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0xd8dabd56
not eax
mov edx, eax
and edx, 0x272542a9
or ecx, edx
xor ecx, 0x272542a8
or ecx, eax
mov eax, dword [0x44f56c]
cmp ecx, 0xffffffff
setne cl
sete byte [esp + 0x72]
cmp eax, 9
setg dl
cmp eax, 0xa
setl al
mov ah, dl
setl byte [esp + 0x73]
xor dl, cl
and ah, cl
xor al, cl
or dl, ah
mov ecx, eax
xor cl, dl
mov ecx, 0x92e2a918
cmovne ecx, edi
test dl, dl
cmovne edi, ecx
test al, al
mov eax, 0x92e2a918
cmovne edi, ecx
mov ecx, dword [ebp + 0x14]
mov esi, dword [ecx + 0x14]
mov ecx, 0x45db3d0d
nop
cmp ecx, 0xe9aa47c5
jg 0x40cfe0
cmp ecx, 0x92e2a918
je 0x40d02b
cmp ecx, 0xb441f633
jne 0x40cfb0
mov dword [esp + 0x74], esi
mov ecx, edi
cmp ecx, 0xe9aa47c5
jle 0x40cfb8
nop word cs:[eax + eax]
cmp ecx, 0xe9aa47c6
je 0x40d03a
cmp ecx, 0x45db3d0d
jne 0x40cfb0
movzx ecx, byte [esp + 0x72]
movzx edx, byte [esp + 0x73]
mov ch, cl
xor cl, dl
xor dl, 1
xor ch, 1
or dl, ch
mov dh, dl
xor dh, cl
test cl, 1
mov ecx, 0x92e2a918
cmovne ecx, ebx
test dl, 1
cmovne ecx, eax
test dh, 1
cmove ecx, ebx
cmp ecx, 0xe9aa47c5
jle 0x40cfb8
jmp 0x40cfe0
mov ecx, 0xb441f633
cmp ecx, 0xe9aa47c5
jle 0x40cfb8
jmp 0x40cfe0
mov ecx, dword [esp + 0x74]
lea eax, [ebp + 0xc]
movaps xmm1, xmmword [0x440010]
movsd xmm0, qword [ebp + 0x1c]
mov edx, ecx
and ecx, 0x3000
andps xmm1, xmm0
not edx
mov esi, edx
and esi, 0xffffcfff
or ecx, esi
not ecx
or ecx, edx
not ecx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x40]
cmp ecx, 0x2000
sete byte [esp + 0x46]
mov cl, byte [esp + 0x46]
mov ecx, dword [esp + 0x40]
movaps xmmword [esp + 0x20], xmm1
cmp ecx, 0x3000
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sete byte [esp + 0x47]
mov dword [esp + 0xc], eax
mov eax, 0xdf7d8df9
mov dword [esp + 0x10], ecx
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
cmp byte [esp + 0x46], 0
mov eax, 0x2f18975
mov ecx, 0x4009b09
mov edx, dword [esp + 0x54]
cmovne eax, ecx
mov dword [esp + 8], edx
nop
cmp eax, 0xe37a3269
jg 0x40d180
cmp eax, 0xc6f6e4f1
jg 0x40d120
cmp eax, 0x8f90623d
jg 0x40d4c1
cmp eax, 0x805b90a0
je 0x40d62a
cmp eax, 0x85c61b23
je 0x40d6c5
cmp eax, 0x863698cb
jne 0x40d0d0
cmp byte [esp + 0x5b], 0
mov eax, 0x2f18975
mov ecx, 0xe37a326a
jmp 0x40d0c3
cmp eax, 0xd2e54b8f
jle 0x40d604
cmp eax, 0xd2e54b90
je 0x40d79c
cmp eax, 0xd824a23c
je 0x40d7c1
cmp eax, 0xdf7d8df9
jne 0x40d0d0
movzx eax, byte [esp + 0x47]
cmp byte [esp + 0x47], 0
mov eax, 0xb9982f9d
mov ecx, 0x18f40c97
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x18], 0xffffffff
cmovne eax, ecx
cmp eax, 0xe37a3269
jle 0x40d0db
nop word [eax + eax]
cmp eax, 0xa3d0fde
jg 0x40d320
cmp eax, 0xf5b1f3ed
jg 0x40d53b
cmp eax, 0xe37a326a
je 0x40d7ea
cmp eax, 0xec64a372
je 0x40d868
cmp eax, 0xf22bcdcf
jne 0x40d0d0
mov eax, dword [esp + 0x6c]
mov eax, dword [esp + 0x6c]
mov eax, dword [esp + 0x6c]
lea ecx, [esp + 0x80]
add eax, 0x32
push 0
push eax
call fcn.00417270
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov eax, dword [0x44f568]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0xfa72adbe
not eax
mov edx, eax
and edx, 0x58d5241
or ecx, edx
mov edx, dword [0x44f56c]
xor ecx, 0x58d5240
or ecx, eax
cmp ecx, 0xffffffff
setne al
sete byte [esp + 0x72]
cmp edx, 9
setg cl
cmp edx, 0xa
mov edx, ecx
setl byte [esp + 0x73]
xor cl, al
and dl, al
mov eax, 0xe9aa47c6
or dl, cl
mov ch, dl
xor ch, cl
test dl, dl
mov edx, 0x92e2a918
cmovne eax, edx
test cl, cl
cmove eax, edx
test ch, ch
mov ecx, 0xe9aa47c6
mov edx, 0x45db3d0d
cmove eax, ecx
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 0x14]
nop dword [eax]
cmp edx, 0xe9aa47c5
jg 0x40d290
cmp edx, 0x92e2a918
je 0x40d303
cmp edx, 0xb441f633
jne 0x40d260
mov dword [esp + 0x74], ecx
mov edx, eax
cmp edx, 0xe9aa47c5
jle 0x40d268
nop word [eax + eax]
cmp edx, 0xe9aa47c6
je 0x40d8f4
cmp edx, 0x45db3d0d
jne 0x40d260
movzx edx, byte [esp + 0x72]
movzx ebx, byte [esp + 0x73]
mov edi, 0xb441f633
mov esi, 0x92e2a918
mov dh, bl
xor dh, 1
and bl, dh
xor bl, 1
mov bh, bl
or bl, dh
xor bh, dh
xor bl, 1
or bl, bh
xor bl, dl
xor dl, 1
mov bh, dl
and bh, dh
xor dh, dl
or dh, bh
mov dl, dh
xor dl, bl
test dl, 1
cmovne edi, esi
test dh, 1
mov edx, 0xb441f633
cmovne edx, edi
test bl, 1
cmove edx, edi
cmp edx, 0xe9aa47c5
jle 0x40d268
jmp 0x40d290
mov edx, 0xb441f633
cmp edx, 0xe9aa47c5
jle 0x40d268
jmp 0x40d290
cmp eax, 0x2678db96
jg 0x40d5ce
cmp eax, 0xa3d0fdf
je 0x40db6c
cmp eax, 0x18f40c97
je 0x40db89
cmp eax, 0x2040e4c7
jne 0x40d0d0
mov eax, dword [esp + 0x6c]
lea ecx, [esp + 0x80]
add eax, 0x32
push 0
push eax
call fcn.00417270
mov eax, dword [esp + 0x60]
mov esi, 0xe9aa47c6
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov eax, dword [0x44f568]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0xa31a2c42
not eax
mov edx, eax
and edx, 0x5ce5d3bd
or ecx, edx
mov edx, dword [0x44f56c]
xor ecx, 0xa31a2c43
xor eax, ecx
test eax, ecx
setne al
sete byte [esp + 0x72]
cmp edx, 9
setg cl
cmp edx, 0xa
setl byte [esp + 0x73]
mov edx, ecx
xor cl, al
or dl, al
mov ch, cl
mov eax, 0x92e2a918
xor ch, dl
test cl, cl
cmovne eax, esi
test dl, dl
mov edx, 0x92e2a918
cmovne eax, edx
mov edx, dword [ebp + 0x14]
test ch, ch
cmove eax, esi
mov edi, dword [edx + 0x14]
mov edx, 0x45db3d0d
nop word cs:[eax + eax]
cmp edx, 0xe9aa47c5
jg 0x40d420
cmp edx, 0x92e2a918
je 0x40d4ab
cmp edx, 0xb441f633
jne 0x40d3f0
mov dword [esp + 0x74], edi
mov edx, eax
cmp edx, 0xe9aa47c5
jle 0x40d3f8
nop word [eax + eax]
cmp edx, 0xe9aa47c6
je 0x40dc32
cmp edx, 0x45db3d0d
jne 0x40d3f0
movzx ebx, byte [esp + 0x72]
mov dh, byte [esp + 0x73]
mov esi, 0x92e2a918
mov ecx, ebx
mov dl, bl
mov bh, dh
xor cl, 1
xor bh, 1
and dl, cl
mov ch, dl
xor dl, bl
and ch, bl
mov bl, dh
and bl, bh
or dl, ch
mov ch, bl
xor bl, dh
and ch, dh
or bl, ch
mov ch, dl
xor ch, 1
and ch, bl
xor bl, 1
and bl, dl
mov edx, ecx
and dl, bh
xor bh, cl
or bl, ch
or bh, dl
mov edx, 0xb441f633
mov cl, bh
xor cl, bl
test bh, 1
cmovne edx, esi
test bl, 1
cmove edx, esi
test cl, 1
mov esi, 0xb441f633
cmove edx, esi
cmp edx, 0xe9aa47c5
jle 0x40d3f8
jmp 0x40d420
mov edx, 0xb441f633
cmp edx, 0xe9aa47c5
jle 0x40d3f8
jmp 0x40d420
cmp eax, 0x8f90623e
je 0x40d0b4
cmp eax, 0xa7c1e158
je 0x40de83
cmp eax, 0xb9982f9d
jne 0x40d0d0
mov eax, dword [0x44f678]
mov esi, 0xced0dd77
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x7ce14468
not eax
and eax, 0x831ebb97
or ecx, eax
mov eax, ecx
xor ecx, 0x831ebb96
xor eax, 0x7ce14468
and eax, 0xfffffffe
or ecx, eax
cmp ecx, 0xffffffff
sete al
cmp dword [0x44f67c], 0xa
setl cl
xor al, cl
mov edx, eax
not dl
and dl, cl
mov ecx, edx
xor cl, al
mov ecx, 0xa7c1e158
jmp 0x40df88
cmp eax, 0xf5b1f3ee
je 0x40de98
cmp eax, 0x2f18975
je 0x40dead
cmp eax, 0x4009b09
jne 0x40d0d0
mov eax, dword [0x44f678]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x815efd2
not eax
mov edx, eax
and edx, 0xf7ea102d
or ecx, edx
xor ecx, 0x815efd3
xor eax, ecx
test eax, ecx
mov eax, dword [0x44f67c]
setne cl
sete dl
cmp eax, 0xa
setl ch
cmp eax, 9
setg al
and ch, cl
and dl, al
or ch, dl
mov edx, eax
xor al, cl
and dl, cl
or al, dl
mov edx, 0x805b90a0
mov cl, al
xor cl, ch
test al, al
mov eax, 0x2b27704f
cmovne eax, edx
test ch, ch
cmove eax, edx
test cl, cl
mov edx, 0x2b27704f
jmp 0x40d8e1
cmp eax, 0x2678db97
je 0x40df1e
cmp eax, 0x2b27704f
je 0x40df97
cmp eax, 0x2ea263ca
jne 0x40d0d0
mov eax, 0x2678db97
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
cmp eax, 0xc6f6e4f2
je 0x40e01b
cmp eax, 0xced0dd77
je 0x40e05a
cmp eax, 0xcfcc6a2c
jne 0x40d0d0
jmp 0x40e1c7
mov eax, dword [0x44f678]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x5beb4219
not eax
and eax, 0xa414bde6
or ecx, eax
mov eax, ecx
xor ecx, 0x404acc2
xor eax, 0x5beb4219
and ecx, 0x468feed2
mov edx, eax
and eax, 0xfffffffe
and edx, 0xb970112d
or edx, ecx
xor edx, 0xb970112c
or eax, edx
mov ecx, eax
and eax, 0x1fef38bb
not ecx
and ecx, 0xe010c744
or eax, ecx
xor eax, 0x1fef38bb
sete al
setne cl
cmp dword [0x44f67c], 0xa
setl dl
mov ah, dl
xor cl, dl
or dl, al
xor ah, al
xor dl, 1
mov ch, cl
or dl, ah
mov eax, 0x2678db97
xor ch, dl
test dl, dl
mov edx, 0x2ea263ca
cmovne eax, edx
test cl, cl
cmovne eax, edx
test ch, ch
mov edx, 0x2678db97
jmp 0x40df0b
sub esp, 0xc
movsd xmm0, qword [ebp + 0x1c]
lea eax, [esp + 0x80]
mov dword [esp + 8], eax
movsd qword [esp], xmm0
call fcn.0042b888
fstp st(0)
add esp, 0xc
mov eax, dword [esp + 0x74]
mov esi, 0xa3d0fdf
mov ecx, eax
neg ecx
test eax, eax
cmovns ecx, eax
imul eax, ecx, 0x7597
mov ecx, 0xa7c5ac5
shr eax, 5
mul ecx
shr edx, 7
add edx, dword [esp + 0x54]
mov eax, dword [0x44f678]
lea ecx, [eax - 1]
mov dword [esp + 0x5c], edx
imul ecx, eax
mov eax, ecx
and ecx, 0x77cdb7f1
not eax
and eax, 0x8832480e
or ecx, eax
mov eax, ecx
xor ecx, 0x8832480f
xor eax, 0x77cdb7f0
and eax, 0xfffffffe
or ecx, eax
mov eax, ecx
and ecx, 0x8256ce4f
not eax
and eax, 0x7da931b0
or ecx, eax
xor ecx, 0x8256ce4f
sete al
cmp dword [0x44f67c], 0xa
setl cl
mov edx, ecx
or cl, al
xor dl, al
xor cl, 1
or cl, dl
mov eax, ecx
xor al, dl
mov eax, 0xc6f6e4f2
cmovne esi, eax
test cl, cl
mov eax, 0xa3d0fdf
cmovne eax, esi
test dl, dl
cmove eax, esi
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x18], eax
mov eax, 0x18f40c97
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
push dword [esp + 0x40]
push dword [esp + 0x68]
push dword [esp + 0x68]
call fcn.0041a3d0
add esp, 0xc
mov eax, 0xec64a372
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
mov eax, dword [0x44f678]
mov esi, 0x85c61b23
mov edi, 0xc6f6e4f2
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0xee4f0b21
not eax
and eax, 0x11b0f4de
or ecx, eax
mov eax, ecx
xor ecx, 0x11b0f4df
xor eax, 0xee4f0b20
and eax, 0xfffffffe
or ecx, eax
mov eax, ecx
and ecx, 0x8bb6a628
not eax
and eax, 0x744959d7
or ecx, eax
xor ecx, 0x8bb6a628
sete al
cmp dword [0x44f67c], 0xa
setl cl
xor al, cl
mov edx, eax
mov ch, al
not dl
and dl, cl
xor ch, dl
test al, al
mov eax, 0xc6f6e4f2
cmovne eax, esi
test dl, dl
cmove eax, edi
test ch, ch
jmp 0x40e008
push dword [esp + 0x40]
push dword [esp + 0x68]
push dword [esp + 0x68]
call fcn.0041a3d0
add esp, 0xc
mov dword [esp + 0x54], eax
mov eax, dword [0x44f678]
mov esi, 0xd824a23c
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0xe2c0fb24
not eax
mov edx, eax
and edx, 0x1d3f04db
or ecx, edx
xor ecx, 0x1d3f04da
or ecx, eax
cmp ecx, 0xffffffff
sete al
cmp dword [0x44f67c], 0xa
setl cl
mov edx, ecx
or cl, al
xor dl, al
xor cl, 1
mov eax, 0x8f90623e
or cl, dl
mov ch, cl
xor ch, dl
test cl, cl
cmovne eax, esi
test dl, dl
mov edx, 0x8f90623e
cmove eax, esi
test ch, ch
cmove eax, edx
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
push dword [esp + 0x74]
push 0
lea eax, [esp + 0x80]
push eax
mov esi, dword [esp + 0x20]
push esi
call fcn.00417420
add esp, 0x10
mov edi, dword [esp + 0x90]
mov ebx, eax
lea eax, [esp + 0x80]
mov ecx, eax
call fcn.00406090
sub esp, 0x18
movsd xmm0, qword [ebp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], eax
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0xc], ecx
call fcn.00412650
add esp, 0x18
lea ecx, [esp + 0x80]
mov ebx, eax
call fcn.00405960
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
sub esp, 0x20
movsd xmm0, qword [esp + 0x50]
movsx ecx, byte [ebp + 0x18]
mov edx, dword [ebp + 0x14]
movsd qword [esp + 8], xmm0
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], edx
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.00417e70
add esp, 0x20
mov eax, dword [esp + 0x3c]
lea eax, [esp + 0x80]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
mov eax, 0x5c86573e
nop dword [eax]
cmp eax, 0xabac62fb
je 0x40db43
cmp eax, 0xeb4c9b95
je 0x40e0f0
cmp eax, 0x5c86573e
jne 0x40d9c0
mov eax, dword [esp + 0x74]
mov ecx, dword [0x44f540]
lea edx, [ecx - 1]
mov dword [esp + 4], eax
mov eax, 0xa45fe795
imul edx, ecx
mov ecx, edx
and edx, 0xedfc1e33
not ecx
and ecx, 0x1203e1cc
or edx, ecx
mov ecx, edx
xor edx, 0x4180
xor ecx, 0xedfc1e33
and edx, 0x885843a2
mov esi, ecx
and ecx, 0xfffffffe
and esi, 0x77a7bc5d
or esi, edx
mov edx, dword [0x44f544]
xor esi, 0x77a7bc5c
or ecx, esi
mov esi, 0xdb26e4c3
cmp ecx, 0xffffffff
sete cl
setne ch
sete byte [esp + 0x71]
cmp edx, 0xa
setl dl
setl byte [esp + 0x72]
xor ch, dl
mov dh, dl
or dl, cl
xor ch, 1
xor dl, 1
xor dh, cl
or dl, ch
mov ecx, edx
xor cl, dh
mov ecx, 0xdb26e4c3
cmovne esi, eax
test dl, dl
cmovne ecx, esi
test dh, dh
mov edx, 0xb6ec62b
cmove ecx, esi
cmp edx, 0xb6ec62a
jg 0x40dab0
cmp edx, 0xa45fe795
je 0x40da9d
cmp edx, 0xdb26e4c3
jne 0x40da80
jmp 0x40db26
mov edx, 0x39fa579a
cmp edx, 0xb6ec62a
jle 0x40da88
nop word [eax + eax]
cmp edx, 0x39fa579a
je 0x40db09
cmp edx, 0xb6ec62b
jne 0x40da80
movzx edx, byte [esp + 0x71]
mov dh, byte [esp + 0x72]
mov edi, 0x39fa579a
mov esi, 0xa45fe795
mov ebx, edx
mov bh, dh
xor bl, 1
xor bh, 1
and dh, bl
or bl, bh
and bh, dl
or bh, dh
mov eax, ebx
mov edx, 0xa45fe795
xor al, bh
test bh, 1
cmovne edx, edi
test bl, 1
cmovne edx, esi
test al, 1
cmove edx, edi
cmp edx, 0xb6ec62a
jle 0x40da88
jmp 0x40dab0
mov eax, dword [esp + 4]
mov edx, ecx
cmp dword [eax + 0x14], 0xf
seta byte [esp + 0x73]
cmp edx, 0xb6ec62a
jle 0x40da88
jmp 0x40dab0
cmp byte [esp + 0x73], 0
mov eax, 0xeb4c9b95
mov ecx, 0xabac62fb
cmovne eax, ecx
cmp eax, 0xabac62fb
jne 0x40d9cb
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x74]
mov ecx, dword [ecx + 0x14]
inc ecx
push ecx
push dword [eax]
call fcn.00405670
add esp, 8
mov eax, 0xeb4c9b95
cmp eax, 0xabac62fb
jne 0x40d9cb
jmp 0x40db43
mov ecx, dword [esp + 0x5c]
mov eax, 0x2f18975
mov dword [esp + 8], ecx
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
mov eax, dword [0x44f678]
mov esi, 0xd824a23c
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x9a25e2b8
not eax
and eax, 0x65da1d47
or ecx, eax
mov eax, ecx
xor ecx, 0x48a0106
xor eax, 0x9a25e2b8
and ecx, 0x8e8e6336
mov edx, eax
and eax, 0xfffffffe
and edx, 0x71719cc9
or edx, ecx
mov ecx, dword [0x44f67c]
xor edx, 0x71719cc8
or eax, edx
cmp eax, 0xffffffff
sete al
setne dl
cmp ecx, 0xa
setl ah
cmp ecx, 9
setg cl
and ah, dl
and al, cl
or cl, dl
mov edx, 0xec64a372
or ah, al
mov al, cl
xor al, ah
cmovne edx, esi
test ah, ah
mov esi, 0xec64a372
mov eax, edx
cmovne eax, esi
test cl, cl
mov esi, dword [esp + 0x1c]
cmovne eax, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], edx
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
push dword [esp + 0x74]
push 0
lea eax, [esp + 0x80]
push eax
mov esi, dword [esp + 0x20]
push esi
call fcn.00417420
add esp, 0x10
mov edi, dword [esp + 0x90]
mov ebx, eax
lea eax, [esp + 0x80]
mov ecx, eax
call fcn.00406090
sub esp, 0x18
movsd xmm0, qword [ebp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], eax
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0xc], ecx
call fcn.00412650
add esp, 0x18
lea ecx, [esp + 0x80]
mov ebx, eax
call fcn.00405960
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
sub esp, 0x20
movsd xmm0, qword [esp + 0x50]
movsx ecx, byte [ebp + 0x18]
mov edx, dword [ebp + 0x14]
movsd qword [esp + 8], xmm0
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], edx
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.00417e70
add esp, 0x20
mov eax, dword [esp + 0x3c]
lea eax, [esp + 0x80]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
mov eax, 0x5c86573e
nop dword [eax + eax]
cmp eax, 0xabac62fb
je 0x40de5a
cmp eax, 0xeb4c9b95
je 0x40e126
cmp eax, 0x5c86573e
jne 0x40dd00
mov eax, dword [esp + 0x74]
mov ecx, dword [0x44f540]
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, edx
and edx, 0x7330a4a5
not ecx
mov esi, ecx
and ecx, 0xfffffffe
and esi, 0x8ccf5b5a
or esi, edx
mov edx, dword [0x44f544]
xor esi, 0x8ccf5b5b
or ecx, esi
mov esi, 0xa45fe795
cmp ecx, 0xffffffff
setne cl
sete byte [esp + 0x71]
cmp edx, 9
setg ch
cmp edx, 0xa
mov edx, ecx
setl byte [esp + 0x72]
xor dl, ch
and ch, cl
or ch, dl
mov dh, ch
xor dh, dl
test ch, ch
mov ecx, 0xdb26e4c3
cmovne ecx, esi
test dl, dl
cmove ecx, esi
test dh, dh
mov edx, 0xdb26e4c3
cmove ecx, edx
mov edx, 0xb6ec62b
nop word [eax + eax]
cmp edx, 0xb6ec62a
jg 0x40ddd0
cmp edx, 0xa45fe795
je 0x40ddbd
cmp edx, 0xdb26e4c3
jne 0x40dda0
jmp 0x40de3d
mov edx, 0x39fa579a
cmp edx, 0xb6ec62a
jle 0x40dda8
nop word [eax + eax]
cmp edx, 0x39fa579a
je 0x40de24
cmp edx, 0xb6ec62b
jne 0x40dda0
movzx edx, byte [esp + 0x71]
mov dh, byte [esp + 0x72]
mov edi, 0x39fa579a
mov esi, 0xa45fe795
xor dl, 1
xor dh, 1
mov ebx, edx
or bl, dh
xor dh, dl
mov bh, dh
xor bh, bl
test dh, 1
mov edx, 0xa45fe795
cmovne edx, edi
test bl, 1
cmovne edx, esi
test bh, 1
cmove edx, edi
cmp edx, 0xb6ec62a
jle 0x40dda8
jmp 0x40ddd0
cmp dword [eax + 0x14], 0xf
mov edx, ecx
seta byte [esp + 0x73]
cmp edx, 0xb6ec62a
jle 0x40dda8
jmp 0x40ddd0
cmp byte [esp + 0x73], 0
mov eax, 0xeb4c9b95
mov ecx, 0xabac62fb
cmovne eax, ecx
cmp eax, 0xabac62fb
jne 0x40dd0b
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x74]
mov ecx, dword [ecx + 0x14]
inc ecx
push ecx
push dword [eax]
call fcn.00405670
add esp, 8
mov eax, 0xeb4c9b95
cmp eax, 0xabac62fb
jne 0x40dd0b
jmp 0x40de5a
mov eax, 0xced0dd77
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
mov eax, 0x2b27704f
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
mov eax, dword [0x44f678]
mov esi, dword [esp + 8]
lea ecx, [eax - 1]
mov dword [esp + 0x6c], esi
imul ecx, eax
mov eax, ecx
and ecx, 1
not eax
mov edx, eax
and edx, 0xfffffffe
or ecx, edx
xor eax, ecx
test eax, ecx
setne al
sete cl
cmp dword [0x44f67c], 9
setg dl
mov ah, dl
xor cl, dl
xor dl, al
and ah, al
mov ch, cl
or dl, ah
mov eax, 0x2040e4c7
xor ch, dl
test dl, dl
mov edx, 0xf22bcdcf
cmovne eax, edx
test cl, cl
cmovne eax, edx
test ch, ch
mov edx, 0x2040e4c7
cmovne eax, edx
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
mov eax, dword [0x44f678]
mov esi, 0xf5b1f3ee
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x61a0bb69
not eax
and eax, 0x9e5f4496
or ecx, eax
mov eax, ecx
xor ecx, 0x94500096
xor eax, 0x61a0bb69
and ecx, 0xf5d02afe
mov edx, eax
and eax, 0xfffffffe
and edx, 0xa2fd501
or edx, ecx
xor edx, 0xa2fd500
or eax, edx
cmp eax, 0xffffffff
sete al
cmp dword [0x44f67c], 0xa
setl cl
xor al, cl
mov edx, eax
not dl
and dl, cl
mov ecx, edx
xor cl, al
mov ecx, 0x2ea263ca
cmovne ecx, esi
test al, al
mov eax, ecx
cmovne eax, esi
jmp 0x40e1b2
movaps xmm0, xmmword [esp + 0x20]
mov eax, dword [0x44f678]
mov esi, 0x863698cb
mov edi, 0x805b90a0
ucomisd xmm0, qword [0x440020]
lea ecx, [eax - 1]
seta byte [esp + 0x5b]
imul ecx, eax
mov eax, ecx
and ecx, 1
not eax
mov edx, eax
and edx, 0xfffffffe
or ecx, edx
xor eax, ecx
test eax, ecx
mov eax, dword [0x44f67c]
sete cl
setne dl
cmp eax, 9
setg ch
cmp eax, 0xa
setl al
and ch, cl
mov cl, al
xor cl, dl
and cl, al
and al, dl
or al, ch
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x805b90a0
cmovne eax, esi
test cl, cl
cmove eax, edi
test dl, dl
cmovne eax, esi
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
sub esp, 0xc
movsd xmm0, qword [ebp + 0x1c]
lea eax, [esp + 0x80]
mov dword [esp + 8], eax
movsd qword [esp], xmm0
call fcn.0042b888
fstp st(0)
add esp, 0xc
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x54]
mov eax, 0x85c61b23
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
mov eax, dword [0x44f678]
mov esi, 0xa7c1e158
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x2cc6109f
not eax
mov edx, eax
and eax, 0xfffffffe
and edx, 0xd339ef60
or edx, ecx
mov ecx, dword [0x44f67c]
xor edx, 0xd339ef61
or eax, edx
cmp eax, 0xffffffff
setne dl
sete al
cmp ecx, 0xa
setl ah
cmp ecx, 9
setg cl
and dl, ah
and cl, al
or dl, cl
mov cl, ah
or ah, al
xor cl, al
xor ah, 1
or ah, cl
mov cl, ah
xor cl, dl
test ah, ah
mov eax, 0xd2e54b90
cmovne eax, esi
test dl, dl
cmove eax, esi
test cl, cl
mov ecx, dword [ebp + 0x14]
movsd xmm0, qword [ecx + 0x18]
mov ecx, 0xd2e54b90
cmove eax, ecx
movsd qword [esp + 0x48], xmm0
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
mov eax, dword [esp + 0x74]
mov dword [eax + 0x10], 0
mov eax, dword [esp + 0x74]
mov dword [eax + 0x14], 0xf
mov eax, dword [esp + 0x74]
mov byte [eax], 0
mov eax, dword [esp + 0x38]
mov eax, 0x2040e4c7
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
mov eax, dword [esp + 0x74]
mov esi, 0xf22bcdcf
mov dword [eax + 0x10], 0
mov eax, dword [esp + 0x74]
mov dword [eax + 0x14], 0xf
mov eax, dword [esp + 0x74]
mov byte [eax], 0
mov eax, dword [esp + 0x38]
mov eax, dword [0x44f678]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x55f83e04
not eax
mov edx, eax
and edx, 0xaa07c1fb
or ecx, edx
xor ecx, 0x55f83e05
xor eax, ecx
test eax, ecx
mov eax, dword [0x44f67c]
sete cl
setne dl
cmp eax, 9
setg ch
cmp eax, 0xa
setl al
and cl, ch
and al, dl
or cl, al
mov al, ch
xor ch, dl
and al, dl
or ch, al
mov eax, 0xcfcc6a2c
mov dl, ch
xor dl, cl
test ch, ch
cmovne eax, esi
test cl, cl
mov ecx, 0xcfcc6a2c
cmove eax, esi
test dl, dl
cmove eax, ecx
cmp eax, 0xe37a3269
jg 0x40d180
jmp 0x40d0db
mov ecx, dword [esp + 0x98]
xor ecx, ebp
call fcn.0041e8c8
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x1c