Function at 0x10070840
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa0
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0x84]
mov dword [esp + 0x64], eax
movsd xmm0, qword [esp + 0x88]
movsd qword [esp + 0x58], xmm0
mov dword [esp + 0x44], 0xbf0eb9a2
lea eax, [esp + 0x44]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
sub eax, 0x871115a1
je 0x100714c3
jmp 0x100708af
mov eax, dword [esp + 0x3c]
sub eax, 0x8796befa
je 0x10071334
jmp 0x100708c3
mov eax, dword [esp + 0x3c]
sub eax, 0x89b4b268
je 0x10071c4d
jmp 0x100708d7
mov eax, dword [esp + 0x3c]
sub eax, 0x89d98f7d
je 0x100711f8
jmp 0x100708eb
mov eax, dword [esp + 0x3c]
sub eax, 0x8a70fb8a
je 0x10071f00
jmp 0x100708ff
mov eax, dword [esp + 0x3c]
sub eax, 0x8b8a48dc
je 0x10071586
jmp 0x10070913
mov eax, dword [esp + 0x3c]
sub eax, 0x8cd52d40
je 0x10070f81
jmp 0x10070927
mov eax, dword [esp + 0x3c]
sub eax, 0x8f64254b
je 0x10071174
jmp 0x1007093b
mov eax, dword [esp + 0x3c]
sub eax, 0x90335e20
je 0x10070f0f
jmp 0x1007094f
mov eax, dword [esp + 0x3c]
sub eax, 0x91d8404e
je 0x10070f64
jmp 0x10070963
mov eax, dword [esp + 0x3c]
sub eax, 0x9a4378d8
je 0x10071cc3
jmp 0x10070977
mov eax, dword [esp + 0x3c]
sub eax, 0x9b72986a
je 0x10071613
jmp 0x1007098b
mov eax, dword [esp + 0x3c]
sub eax, 0xa17f1ccc
je 0x10071065
jmp 0x1007099f
mov eax, dword [esp + 0x3c]
sub eax, 0xb19b38d4
je 0x10071ec2
jmp 0x100709b3
mov eax, dword [esp + 0x3c]
sub eax, 0xbc0f21ae
je 0x10071f97
jmp 0x100709c7
mov eax, dword [esp + 0x3c]
sub eax, 0xbc60f18c
je 0x10071d1c
jmp 0x100709db
mov eax, dword [esp + 0x3c]
sub eax, 0xbca258a9
je 0x10071f57
jmp 0x100709ef
mov eax, dword [esp + 0x3c]
sub eax, 0xbce08ae0
je 0x10071877
jmp 0x10070a03
mov eax, dword [esp + 0x3c]
sub eax, 0xbe77268c
je 0x10071a53
jmp 0x10070a17
mov eax, dword [esp + 0x3c]
sub eax, 0xbe865b44
je 0x10070e02
jmp 0x10070a2b
mov eax, dword [esp + 0x3c]
sub eax, 0xbf0eb9a2
je 0x10070d78
jmp 0x10070a3f
mov eax, dword [esp + 0x3c]
sub eax, 0xc0dad488
je 0x10071db3
jmp 0x10070a53
mov eax, dword [esp + 0x3c]
sub eax, 0xc207d78c
je 0x10071d6d
jmp 0x10070a67
mov eax, dword [esp + 0x3c]
sub eax, 0xc562712a
je 0x10071da4
jmp 0x10070a7b
mov eax, dword [esp + 0x3c]
sub eax, 0xc60fa7b3
je 0x100719cf
jmp 0x10070a8f
mov eax, dword [esp + 0x3c]
sub eax, 0xcaf5b578
je 0x10071d7f
jmp 0x10070aa3
mov eax, dword [esp + 0x3c]
sub eax, 0xce339ebd
je 0x10071beb
jmp 0x10070ab7
mov eax, dword [esp + 0x3c]
sub eax, 0xd08a460e
je 0x10071fe1
jmp 0x10070acb
mov eax, dword [esp + 0x3c]
sub eax, 0xd0ba2959
je 0x10071ef1
jmp 0x10070adf
mov eax, dword [esp + 0x3c]
sub eax, 0xd8a876e9
je 0x100714d2
jmp 0x10070af3
mov eax, dword [esp + 0x3c]
sub eax, 0xda3abef2
je 0x10071df7
jmp 0x10070b07
mov eax, dword [esp + 0x3c]
sub eax, 0xde1844f4
je 0x10071cb4
jmp 0x10070b1b
mov eax, dword [esp + 0x3c]
sub eax, 0xe018ea83
je 0x100716c6
jmp 0x10070b2f
mov eax, dword [esp + 0x3c]
sub eax, 0xe3cb18f0
je 0x10070e78
jmp 0x10070b43
mov eax, dword [esp + 0x3c]
sub eax, 0xe8e5a294
je 0x10071b3c
jmp 0x10070b57
mov eax, dword [esp + 0x3c]
sub eax, 0xf54bef9c
je 0x10071bdc
jmp 0x10070b6b
mov eax, dword [esp + 0x3c]
sub eax, 0xf81b3cbb
je 0x100717ec
jmp 0x10070b7f
mov eax, dword [esp + 0x3c]
sub eax, 0xf90a57fc
je 0x10071ed1
jmp 0x10070b93
mov eax, dword [esp + 0x3c]
sub eax, 0xff023abf
je 0x10071e30
jmp 0x10070ba7
mov eax, dword [esp + 0x3c]
sub eax, 0x75135bc
je 0x10071868
jmp 0x10070bbb
mov eax, dword [esp + 0x3c]
sub eax, 0x9178e99
je 0x100710fd
jmp 0x10070bcf
mov eax, dword [esp + 0x3c]
sub eax, 0xd847f0f
je 0x10071471
jmp 0x10070be3
mov eax, dword [esp + 0x3c]
sub eax, 0x156128db
je 0x10071b4b
jmp 0x10070bf7
mov eax, dword [esp + 0x3c]
sub eax, 0x1e26e78f
je 0x10072021
jmp 0x10070c0b
mov eax, dword [esp + 0x3c]
sub eax, 0x264e9fa3
je 0x10071343
jmp 0x10070c1f
mov eax, dword [esp + 0x3c]
sub eax, 0x26c92b05
je 0x10071630
jmp 0x10070c33
mov eax, dword [esp + 0x3c]
sub eax, 0x26ebef8c
je 0x10071191
jmp 0x10070c47
mov eax, dword [esp + 0x3c]
sub eax, 0x3a4d884f
je 0x10070d9e
jmp 0x10070c5b
mov eax, dword [esp + 0x3c]
sub eax, 0x3affe9e8
je 0x10070fde
jmp 0x10070c6f
mov eax, dword [esp + 0x3c]
sub eax, 0x3d727433
je 0x10071f88
jmp 0x10070c83
mov eax, dword [esp + 0x3c]
sub eax, 0x3e261355
je 0x10071416
jmp 0x10070c97
mov eax, dword [esp + 0x3c]
sub eax, 0x3e33e47d
je 0x100713ab
jmp 0x10070cab
mov eax, dword [esp + 0x3c]
sub eax, 0x415e4e50
je 0x10071b9e
jmp 0x10070cbf
mov eax, dword [esp + 0x3c]
sub eax, 0x41d3554d
je 0x10071760
jmp 0x10070cd3
mov eax, dword [esp + 0x3c]
sub eax, 0x4305eb18
je 0x100718e1
jmp 0x10070ce7
mov eax, dword [esp + 0x3c]
sub eax, 0x486cbf7d
je 0x1007177d
jmp 0x10070cfb
mov eax, dword [esp + 0x3c]
sub eax, 0x4ce8dd1b
je 0x100719b2
jmp 0x10070d0f
mov eax, dword [esp + 0x3c]
sub eax, 0x6e0030b8
je 0x10071074
jmp 0x10070d23
mov eax, dword [esp + 0x3c]
sub eax, 0x6f6832a6
je 0x10071ff0
jmp 0x10070d37
mov eax, dword [esp + 0x3c]
sub eax, 0x722c1468
je 0x10070e87
jmp 0x10070d4b
mov eax, dword [esp + 0x3c]
sub eax, 0x75500f11
je 0x10071886
jmp 0x10070d5f
mov eax, dword [esp + 0x3c]
sub eax, 0x7a20f464
je 0x10071433
jmp 0x10070d73
jmp 0x1007202b
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
sub ecx, 1
sbb eax, 0
mov eax, 0x3a4d884f
mov ecx, 0x722c1468
cmovl ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281f0c]
or eax, dword [0x10281f10]
or eax, 0x4ad29d8b
mov esi, 0xffffffff
xor esi, 0x36928ef2
mov edx, eax
and edx, esi
mov ecx, eax
or ecx, esi
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x36928ef2
or eax, 0x36928ef2
imul eax, edx
add eax, ecx
mov ecx, 0x9438dba5
xor edx, edx
div ecx
mov edx, eax
mov ecx, 0xbe865b44
mov eax, 0xcaf5b578
cmp edx, 0x64ad6d33
cmova ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281f14]
mov edx, dword [0x10281f18]
mov ecx, eax
not ecx
or ecx, edx
lea edx, [eax + ecx + 1]
mov ecx, edx
or ecx, 0x2fe6fef7
mov esi, edx
not esi
and esi, 0x80080108
mov eax, ecx
and eax, 0x5cf38847
imul eax, esi
and ecx, 0xa30c77b8
or edx, 0xafeeffff
imul edx, ecx
add edx, eax
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov ecx, 0xcaf5b578
mov eax, 0xe3cb18f0
cmp edx, 0x33a8802e
cmovb ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [esp + 0x40]
mov dword [eax], 0x9a4378d8
jmp 0x1007202b
mov eax, dword [0x10281f1c]
mov edx, dword [0x10281f20]
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, edx
add eax, ecx
mov esi, 0xffffffff
xor esi, 0x764fbc47
mov edx, eax
and edx, esi
mov ecx, eax
or ecx, esi
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x764fbc47
or eax, 0x764fbc47
imul eax, edx
add eax, ecx
sub eax, 0xfdb857e1
mov edx, eax
and edx, 0x6adc108e
xor edx, 0xffffffff
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x6adc108e
or eax, ecx
xor edx, 0xffffffff
xor eax, 0xffffffff
or edx, eax
mov ecx, 0x90335e20
mov eax, 0xc562712a
cmp edx, 0x58eb230d
cmovae ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281f24]
mov edx, dword [0x10281f28]
mov ecx, eax
and ecx, edx
shl ecx, 1
add eax, edx
sub eax, ecx
sub eax, 0x1eb11c00
imul edx, eax, 0x7739c6e3
sub edx, 0xe1a61448
mov eax, dword [esp + 0x64]
cmp dword [eax + 0x38], 0
setne al
and al, 1
mov byte [esp + 0x57], al
mov ecx, 0x91d8404e
mov eax, 0xc562712a
cmp edx, 0xdee5b1b9
cmovbe ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov ecx, 0x6e0030b8
mov eax, 0x8cd52d40
test byte [esp + 0x57], 1
cmovne ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov ecx, dword [0x10281f2c]
add ecx, dword [0x10281f30]
mov eax, ecx
and eax, 0xadee8e21
xor eax, 0xffffffff
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xadee8e21
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov ecx, 0xe8b90cc4
xor edx, edx
div ecx
mov ecx, 0x45a6fb9
xor edx, edx
div ecx
mov edx, eax
mov ecx, 0x3affe9e8
mov eax, 0xc0dad488
cmp edx, 0x321bb01d
cmovae ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281f34]
mov ecx, dword [0x10281f38]
imul eax, ecx
add eax, 0xf98a7817
mov ecx, 0xb457a3e5
mul ecx
shr edx, 0x1f
mov eax, edx
add eax, eax
neg eax
lea eax, [edx + eax - 0x2c992941]
mov dword [esp + 0x38], eax
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x8c]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x64]
mov eax, esp
mov dword [eax + 8], edi
mov dword [eax + 4], esi
mov dword [eax], edx
call fcn.1001f510
sub esp, 0xc
mov ecx, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], eax
mov ecx, 0xc0dad488
mov eax, 0xa17f1ccc
cmp edx, 0x838fe544
cmovae ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [esp + 0x40]
mov dword [eax], 0x9a4378d8
jmp 0x1007202b
mov eax, dword [0x10281f3c]
mov ecx, dword [0x10281f40]
mov edx, eax
or edx, edx
xor edx, 0xffffffff
mov esi, ecx
xor esi, 0xffffffff
mov edi, ecx
xor edi, 0xffffffff
and esi, edi
xor edx, 0xffffffff
xor esi, 0xffffffff
and edx, esi
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
or edx, eax
xor edx, 0xffffffff
mov esi, 0xffffffff
xor esi, 0x530f8bd5
mov ecx, edx
and ecx, esi
mov eax, edx
or eax, esi
xor eax, 0xffffffff
imul eax, ecx
mov ecx, edx
and ecx, 0x530f8bd5
or edx, 0x530f8bd5
imul edx, ecx
add edx, eax
xor edx, 0x8aa441f2
and edx, 0x464e4135
mov ecx, 0xda3abef2
mov eax, 0x9178e99
cmp edx, 0xa956f612
cmovbe ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281f44]
mov ecx, dword [0x10281f48]
add eax, ecx
imul eax, eax, 0xf97acb49
add eax, 0xf8bede36
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x80], eax
movsd xmm0, qword [esp + 0x88]
movsd qword [esp + 0x78], xmm0
mov ecx, dword [esp + 0x64]
call fcn.1002d150
mov edx, dword [esp + 0x34]
mov dword [esp + 0x74], eax
xor eax, eax
cmp eax, dword [esp + 0x74]
setb al
and al, 1
mov byte [esp + 0x56], al
mov ecx, 0x9178e99
mov eax, 0x8f64254b
cmp edx, 0x7da9c10d
cmovbe ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov ecx, 0x264e9fa3
mov eax, 0x26ebef8c
test byte [esp + 0x56], 1
cmovne ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281f4c]
xor edx, edx
div dword [0x10281f50]
mov edx, eax
and edx, 0xecf0b18d
mov eax, edx
xor eax, 0xffffffff
and eax, 0xdf8b3dd0
mov ecx, 0xffffffff
xor ecx, 0xdf8b3dd0
and edx, ecx
sub edx, eax
mov ecx, 0xffffffff
xor ecx, 0x945d1278
mov eax, edx
and eax, ecx
mov ecx, edx
xor ecx, 0x945d1278
add edx, ecx
sub edx, eax
mov ecx, 0x89d98f7d
mov eax, 0xff023abf
cmp edx, 0xfa32fd7e
cmova ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov esi, dword [0x10281f54]
xor esi, dword [0x10281f58]
or esi, 0x5790cdd5
mov ecx, esi
xor ecx, 0xffffffff
and ecx, 0xdebf8abc
mov edx, 0xffffffff
xor edx, 0xdebf8abc
and esi, edx
mov eax, 0xffffffff
xor eax, 0xf280bf7a
and eax, 0xdebf8abc
and edx, 0xf280bf7a
or ecx, esi
or eax, edx
xor ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov dword [esp + 0x28], eax
mov esi, 0xffffffff
xor esi, 0x8451e75
mov edx, 0xffffffff
xor edx, 0x68297964
and eax, 0x68297964
and ecx, edx
mov edi, esi
and edi, 0x68297964
mov ebx, edx
and ebx, 0x8451e75
or eax, ecx
mov ecx, dword [esp + 0x28]
or edi, ebx
xor eax, edi
or ecx, esi
xor ecx, 0xffffffff
or edx, 0x68297964
and ecx, edx
or eax, ecx
mov dword [esp + 0x30], eax
lea ecx, [esp + 0x80]
lea eax, [esp + 0x74]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10031250
mov eax, dword [eax]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x64]
call fcn.100298e0
mov ecx, eax
mov eax, dword [esp + 0x2c]
mov edx, dword [ebp + 8]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.10029530
mov eax, dword [esp + 0x70]
add eax, dword [ebp + 8]
mov dword [ebp + 8], eax
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x80]
add eax, 0xa3fd7ebf
sub eax, ecx
sub eax, 0xa3fd7ebf
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x64]
mov dword [esp], eax
call fcn.1002c8b0
sub esp, 4
mov edx, dword [esp + 0x30]
mov ecx, 0x8796befa
mov eax, 0x89d98f7d
cmp edx, 0x51b74396
cmovae ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [esp + 0x40]
mov dword [eax], 0x264e9fa3
jmp 0x1007202b
mov edx, dword [0x10281f5c]
mov ecx, dword [0x10281f60]
mov eax, ecx
and eax, edx
xor eax, 0xffffffff
add edx, ecx
add edx, 1
add edx, eax
add edx, 0x5889128c
xor edx, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x4035a17b
mov eax, 0xffffffff
xor eax, 0x76e79bbe
or edx, ecx
or eax, 0x76e79bbe
xor edx, 0xffffffff
and edx, eax
add edx, 0x6227750f
mov ecx, 0x3e33e47d
mov eax, 0xb19b38d4
cmp edx, 0xd520f945
cmova ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov edx, dword [0x10281f64]
sub edx, dword [0x10281f68]
xor edx, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x29f0d3de
mov eax, 0xffffffff
xor eax, 0x2e9909f
or edx, ecx
or eax, 0x2e9909f
xor edx, 0xffffffff
and edx, eax
or edx, 0xfea44c3f
and edx, 0x1cd19d89
mov eax, dword [esp + 0x64]
cmp dword [eax + 0x4c], 0
setne al
and al, 1
mov byte [esp + 0x55], al
mov ecx, 0x3e33e47d
mov eax, 0x3e261355
cmp edx, 0x2ac6d7c8
cmovb ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov ecx, 0xce339ebd
mov eax, 0x7a20f464
test byte [esp + 0x55], 1
cmovne ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281f6c]
add eax, dword [0x10281f70]
add eax, 0x4ef6f9c8
add eax, 0xc5ea7cc5
mov ecx, 0x6d2b3f16
xor edx, edx
div ecx
mov edx, eax
mov ecx, 0xf90a57fc
mov eax, 0xd847f0f
cmp edx, 0x84273e61
cmovbe ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281f74]
add eax, dword [0x10281f78]
sub eax, 0xb810c8fd
xor eax, 0x78e10c15
imul eax, eax, 0x68184114
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x64]
call fcn.1006b3e0
mov edx, dword [esp + 0x24]
mov dword [esp + 0x6c], 0xfff
mov ecx, 0xf90a57fc
mov eax, 0x871115a1
cmp edx, 0x6a236e6a
cmovb ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [esp + 0x40]
mov dword [eax], 0xd8a876e9
jmp 0x1007202b
mov eax, dword [0x10281f7c]
mov esi, dword [0x10281f80]
mov edi, esi
xor edi, 0xffffffff
mov edx, eax
and edx, edi
mov ecx, eax
or ecx, edi
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, esi
or eax, esi
imul eax, edx
add eax, ecx
and eax, 0x3e3253f0
mov edx, eax
and edx, edx
xor edx, 0xffffffff
xor edx, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x4e72cb48
or edx, ecx
mov ecx, 0xffffffff
xor ecx, 0x4e72cb48
mov esi, 0xffffffff
xor esi, 0x4e72cb48
or ecx, esi
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
and edx, eax
xor edx, 0xffffffff
mov esi, 0xffffffff
xor esi, 0xd23fdc29
mov ecx, edx
and ecx, esi
mov eax, edx
or eax, esi
xor eax, 0xffffffff
imul eax, ecx
mov ecx, edx
and ecx, 0xd23fdc29
or edx, 0xd23fdc29
imul edx, ecx
add edx, eax
mov ecx, 0x8b8a48dc
mov eax, 0xd0ba2959
cmp edx, 0x111eabc0
cmovbe ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov edx, dword [0x10281f84]
sub edx, dword [0x10281f88]
mov ecx, edx
xor ecx, 0xffffffff
and ecx, 0xacade16a
mov esi, 0xffffffff
xor esi, 0xacade16a
mov eax, edx
and eax, esi
imul eax, ecx
mov ecx, edx
and ecx, 0xacade16a
or edx, 0xacade16a
imul edx, ecx
add edx, eax
mov eax, edx
xor eax, 0x57df2a3c
xor eax, 0xffffffff
and eax, 0x57df2a3c
shl eax, 1
sub eax, 0x57df2a3c
sub edx, eax
and edx, 0xc2fe13
mov eax, 0xfff
cmp eax, dword [esp + 0x80]
setb al
and al, 1
mov byte [esp + 0x54], al
mov ecx, 0x9b72986a
mov eax, 0xd0ba2959
cmp edx, 0xb85b35f3
cmovae ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov ecx, 0x75500f11
mov eax, 0x26c92b05
test byte [esp + 0x54], 1
cmovne ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281f8c]
mov esi, dword [0x10281f90]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, esi
and edx, ecx
mov edi, esi
xor edi, 0xffffffff
mov ecx, eax
and ecx, edi
imul ecx, edx
mov edx, eax
and edx, esi
or eax, esi
imul eax, edx
add eax, ecx
mov ecx, 0xae0208db
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
and eax, edx
mov edx, 0xffffffff
xor edx, 0xdeded3ab
mov esi, 0xffffffff
xor esi, 0xdeded3ab
and edx, esi
or eax, edx
xor eax, 0xffffffff
or ecx, 0xdeded3ab
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0xf1ad0ec9
xor edx, edx
div ecx
mov edx, eax
mov ecx, 0xe018ea83
mov eax, 0x8a70fb8a
cmp edx, 0x62f3014e
cmovae ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281f94]
xor eax, dword [0x10281f98]
add eax, 0xe5e4570f
imul eax, eax, 0x38242f08
or eax, 0xe55dbba8
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0x4c]
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], 0xfff
mov dword [esp + 0xc], eax
call fcn.10200b49
mov edx, dword [esp + 0x20]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
add eax, dword [ebp + 8]
mov dword [ebp + 8], eax
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x80]
sub eax, ecx
mov dword [esp + 0x80], eax
cmp dword [esp + 0x68], 0xfff
setne al
and al, 1
mov byte [esp + 0x53], al
mov ecx, 0x8a70fb8a
mov eax, 0x41d3554d
cmp edx, 0xf4012224
cmovne ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov ecx, 0xbce08ae0
mov eax, 0x486cbf7d
test byte [esp + 0x53], 1
cmovne ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281f9c]
imul eax, dword [0x10281fa0]
mov esi, 0xffffffff
xor esi, 0x12ac2112
mov edx, eax
and edx, esi
mov ecx, eax
or ecx, esi
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x12ac2112
or eax, 0x12ac2112
imul eax, edx
add eax, ecx
sub eax, 0x3a24a80b
sub eax, 0x7433dfa5
add eax, 0x3a24a80b
mov ecx, 0x21af215e
xor edx, edx
div ecx
mov edx, eax
mov ecx, 0xf81b3cbb
mov eax, 0xbca258a9
cmp edx, 0x88130dd8
cmova ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov edx, dword [0x10281fa4]
mov esi, dword [0x10281fa8]
mov eax, edx
not eax
mov ecx, esi
and ecx, eax
mov edi, esi
not edi
mov eax, edx
and eax, edi
imul eax, ecx
mov ecx, edx
and ecx, esi
or edx, esi
imul edx, ecx
add edx, eax
or edx, 0x161a9309
add edx, 0xe3330b2e
and edx, 0x8821eb80
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
sub ecx, esi
sbb eax, 0
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
mov ecx, 0x75135bc
mov eax, 0xf81b3cbb
cmp edx, 0xf6c89aeb
cmova ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [esp + 0x40]
mov dword [eax], 0x9a4378d8
jmp 0x1007202b
mov eax, dword [esp + 0x40]
mov dword [eax], 0xd8a876e9
jmp 0x1007202b
mov edx, dword [0x10281fac]
imul edx, dword [0x10281fb0]
and edx, 0xe407758e
sub edx, 0xb5469480
add edx, 0x7f20b167
add edx, 0xb5469480
mov eax, edx
xor eax, 0x24acdcb2
mov ecx, 0xffffffff
xor ecx, 0x24acdcb2
and edx, ecx
shl edx, 1
sub edx, eax
mov ecx, 0x3d727433
mov eax, 0x4305eb18
cmp edx, 0xbda57622
cmovbe ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281fb4]
add eax, dword [0x10281fb8]
mov esi, eax
xor esi, 0xffffffff
mov dword [esp + 0x1c], esi
mov edx, 0xffffffff
xor edx, 0xac667c0
mov ecx, 0xffffffff
xor ecx, 0x34a94f04
and esi, 0x34a94f04
and eax, ecx
mov edi, edx
and edi, 0x34a94f04
mov ebx, ecx
and ebx, 0xac667c0
or esi, eax
mov eax, dword [esp + 0x1c]
or edi, ebx
xor esi, edi
or eax, edx
xor eax, 0xffffffff
or ecx, 0x34a94f04
and eax, ecx
or esi, eax
mov edx, esi
xor edx, 0xffffffff
and edx, 0xd77d1161
mov ecx, 0xffffffff
xor ecx, 0xd77d1161
and esi, ecx
mov eax, 0xffffffff
xor eax, 0x61322eed
and eax, 0xd77d1161
and ecx, 0x61322eed
or edx, esi
or eax, ecx
xor edx, eax
mov eax, 0xffffffff
xor eax, 0xd227842a
xor ecx, ecx
sub ecx, 1
sub eax, ecx
sub edx, eax
xor eax, eax
cmp eax, dword [esp + 0x80]
setb al
and al, 1
mov byte [esp + 0x52], al
mov ecx, 0x4ce8dd1b
mov eax, 0x3d727433
cmp edx, 0x9755db5
cmove ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov ecx, 0x156128db
mov eax, 0xc60fa7b3
test byte [esp + 0x52], 1
cmovne ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281fbc]
mov edx, dword [0x10281fc0]
mov ecx, eax
xor ecx, edx
xor edx, 0xffffffff
and eax, edx
shl eax, 1
sub eax, ecx
mov ecx, 0xb541cfb3
xor edx, edx
div ecx
mov edx, eax
mov ecx, edx
xor ecx, 0xffffffff
and ecx, 0x94ec546a
mov esi, 0xffffffff
xor esi, 0x94ec546a
mov eax, edx
and eax, esi
imul eax, ecx
mov ecx, edx
and ecx, 0x94ec546a
or edx, 0x94ec546a
imul edx, ecx
add edx, eax
mov eax, 0xffffffff
xor eax, 0xdb2c6de1
xor ecx, ecx
sub ecx, 1
sub eax, ecx
sub edx, eax
mov ecx, 0xbe77268c
mov eax, 0xbc0f21ae
cmp edx, 0xbdbeef54
cmove ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov esi, dword [0x10281fc4]
add esi, dword [0x10281fc8]
xor esi, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0xe9c9e71f
mov eax, 0xffffffff
xor eax, 0xba5f34d1
or esi, ecx
or eax, 0xba5f34d1
xor esi, 0xffffffff
and esi, eax
mov ecx, esi
xor ecx, 0xffffffff
and ecx, 0xfac60cc7
mov edx, 0xffffffff
xor edx, 0xfac60cc7
and esi, edx
mov eax, 0xffffffff
xor eax, 0xb5c15cb
and eax, 0xfac60cc7
and edx, 0xb5c15cb
or ecx, esi
or eax, edx
xor ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x7a2cefa6
mov edx, 0xffffffff
xor edx, 0x7a2cefa6
and ecx, edx
or eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0x4c]
mov ecx, dword [esp + 0x80]
mov edx, dword [ebp + 8]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.10200b49
mov edx, dword [esp + 0x18]
mov esi, eax
mov eax, dword [esp + 0x80]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, esi
xor esi, 0xffffffff
and eax, esi
sub eax, ecx
mov dword [esp + 0x80], eax
mov ecx, 0xe8e5a294
mov eax, 0xbe77268c
cmp edx, 0x7cf13f34
cmovae ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [esp + 0x40]
mov dword [eax], 0x156128db
jmp 0x1007202b
mov eax, dword [0x10281fcc]
mov edx, dword [0x10281fd0]
mov esi, eax
xor esi, edx
xor esi, 0xffffffff
mov ecx, edx
and ecx, esi
shl ecx, 1
sub ecx, edx
sub eax, ecx
mov ecx, 0x525dd288
xor edx, edx
div ecx
xor ecx, ecx
sub ecx, 0x34822108
add eax, ecx
imul edx, eax, 0x8ed74669
mov ecx, 0xd08a460e
mov eax, 0x415e4e50
cmp edx, 0x8463dd71
cmovae ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281fd4]
or eax, dword [0x10281fd8]
mov ecx, 0x946f67fb
xor edx, edx
div ecx
imul edx, eax, 0xb5db3159
sub edx, 0x324bb9ad
mov ecx, 0xd08a460e
mov eax, 0xf54bef9c
cmp edx, 0xe0ed4014
cmovb ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [esp + 0x40]
mov dword [eax], 0xce339ebd
jmp 0x1007202b
mov eax, dword [0x10281fdc]
xor edx, edx
div dword [0x10281fe0]
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xbc19e07e
mov ecx, 0xffffffff
xor ecx, 0xee4ba251
or eax, edx
or ecx, 0xee4ba251
xor eax, 0xffffffff
and eax, ecx
imul eax, eax, 0x67fa8b5b
mov ecx, 0xf02be75b
xor edx, edx
div ecx
mov edx, eax
mov ecx, 0x6f6832a6
mov eax, 0x89b4b268
cmp edx, 0x489b1395
cmovbe ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281fe4]
mov esi, dword [0x10281fe8]
mov edx, esi
not edx
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, esi
add eax, edx
sub eax, ecx
imul edx, eax, 0xa3813d6c
add edx, 0x7d19d608
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
sub ecx, esi
sbb eax, 0
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
mov ecx, 0xde1844f4
mov eax, 0x6f6832a6
cmp edx, 0xbf79639c
cmove ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [esp + 0x40]
mov dword [eax], 0x9a4378d8
jmp 0x1007202b
mov eax, dword [0x10281fec]
add eax, dword [0x10281ff0]
sub eax, 0x7724f5a9
or eax, 0x150a53b7
mov edx, eax
xor edx, 0xffffffff
xor eax, 0xffffffff
and edx, eax
mov eax, 0xffffffff
xor eax, 0x648ce7ba
mov ecx, 0xffffffff
xor ecx, 0x648ce7ba
and eax, ecx
or edx, eax
xor edx, 0xffffffff
mov ecx, 0x1e26e78f
mov eax, 0xbc60f18c
cmp edx, 0x2ca71207
cmovbe ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [0x10281ff4]
mov ecx, dword [0x10281ff8]
xor edx, edx
div ecx
add eax, 0xa402b4db
mov ecx, 0x7be1e79b
mul ecx
shr edx, 0x1e
or edx, 0x96e777be
movsd xmm0, qword [esp + 0x90]
movsd qword [esp + 0x48], xmm0
mov ecx, 0xbc60f18c
mov eax, 0xc207d78c
cmp edx, 0x801ed1e7
cmova ecx, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
jmp 0x1007202b
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov eax, dword [esp + 0x40]
mov dword [eax], 0xbe865b44
jmp 0x1007202b
mov eax, dword [esp + 0x40]
mov dword [eax], 0x90335e20
jmp 0x1007202b
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x8c]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x64]
mov eax, esp
mov dword [eax + 8], edi
mov dword [eax + 4], esi
mov dword [eax], edx
call fcn.1001f510
sub esp, 0xc
mov dword [esp + 0x94], edx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x40]
mov dword [eax], 0x3affe9e8
jmp 0x1007202b
mov eax, dword [esp + 0x88]
mov dword [esp + 0x80], eax
movsd xmm0, qword [esp + 0x88]
movsd qword [esp + 0x78], xmm0
mov ecx, dword [esp + 0x64]
call fcn.1002d150
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x40]
mov dword [eax], 0x9178e99
jmp 0x1007202b
lea ecx, [esp + 0x80]
lea eax, [esp + 0x74]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10031250
mov eax, dword [eax]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x64]
call fcn.100298e0
mov ecx, eax
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 8]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.10029530
mov eax, dword [esp + 0x70]
add eax, dword [ebp + 8]
mov dword [ebp + 8], eax
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x80]
mov ecx, eax
xor ecx, edx
xor edx, 0xffffffff
and eax, edx
shl eax, 1
sub eax, ecx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x64]
mov dword [esp], eax
call fcn.1002c8b0
sub esp, 4
mov eax, dword [esp + 0x40]
mov dword [eax], 0x89d98f7d
jmp 0x1007202b
mov eax, dword [esp + 0x40]
mov dword [eax], 0x3e33e47d
jmp 0x1007202b
mov ecx, dword [esp + 0x64]
call fcn.1006b3e0
mov dword [esp + 0x6c], 0xfff
mov eax, dword [esp + 0x40]
mov dword [eax], 0xd847f0f
jmp 0x1007202b
mov eax, dword [esp + 0x40]
mov dword [eax], 0x8b8a48dc
jmp 0x1007202b
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0x4c]
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], 0xfff
mov dword [esp + 0xc], eax
call fcn.10200b49
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
add eax, dword [ebp + 8]
mov dword [ebp + 8], eax
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x80]
sub eax, ecx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x40]
mov dword [eax], 0xe018ea83
jmp 0x1007202b
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
sub ecx, edx
sbb eax, 0
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x40]
mov dword [eax], 0xf81b3cbb
jmp 0x1007202b
mov eax, dword [esp + 0x40]
mov dword [eax], 0x4305eb18
jmp 0x1007202b
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0x4c]
mov ecx, dword [esp + 0x80]
mov edx, dword [ebp + 8]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.10200b49
mov ecx, eax
mov eax, dword [esp + 0x80]
sub eax, ecx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x40]
mov dword [eax], 0xbe77268c
jmp 0x1007202b
mov eax, dword [esp + 0x40]
mov dword [eax], 0x415e4e50
jmp 0x1007202b
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
sub ecx, edx
sbb eax, 0
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x40]
mov dword [eax], 0x89b4b268
jmp 0x1007202b
mov eax, dword [esp + 0x40]
mov dword [eax], 0xbc60f18c
jmp 0x10070897