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

Disassembly:
sub esp, 0x90
mov ecx, dword [esp + 0x98]
push ebx
mov ebx, dword [esp + 0x84]
push ebp
mov eax, ecx
push esi
xor esi, esi
and eax, 0xf591afba
push edi
xor edi, edi
or eax, 0x1101a690
mov dword [esp + 0x94], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x98], 0xe4ce5a34
mov dword [esp + 0x8c], 0x52513231
mov dword [esp + 0x80], 0x23b639d2
mov dword [esp + 0x84], 0x9d643533
mov dword [esp + 0x74], 0x4dc018ff
mov dword [esp + 0x88], 0x7e5de7b5
or ecx, 0x1b6ff6d5
sub ecx, eax
mov edi, edi
add ecx, 0xf591afd1
cmp ecx, 0x1b
ja case.0x1000c4ff.175001667
jmp dword [ecx*4 + 0x1000d4ac]
mov ecx, dword [esp + 0x80]
add ecx, 0x8cd83c77
mov eax, 0x40000001
imul ecx
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7fffffff
jmp 0x1000c4ec
mov edx, dword [esp + 0x4c]
xor edx, 0x8b0f5a64
mov ecx, edi
mov eax, edi
and eax, 1
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x4c]
not ecx
and ecx, 1
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x4c], edx
add eax, 0xf32a61fc
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, dword [esp + 0x14]
mov ebp, eax
imul ebp, dword [esp + 0x54]
or edi, 1
mov dword [esp + 0x6c], 0
mov dword [esp + 0x7c], 0x9dd48236
mov dword [esp + 0x78], 0xd63be08f
mov dword [esp + 0x90], 0x9744
imul edx, ecx
add edx, ebp
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x28]
xor edx, 0x81b598b1
mov ebp, eax
imul eax, dword [esp + 0x40]
imul edx, ecx
imul ebp, dword [esp + 0x28]
imul ecx, ecx, 0x54fd1b88
add edx, ebp
sub eax, ecx
cmp dword [esi], 0
mov dword [esp + 0x28], edx
mov dword [esp + 0x40], eax
jne 0x1000c5d9
mov dword [esp + 0x14], 1
jmp 0x1000c5e5
cmp dword [esi + 4], 8
sbb eax, eax
neg eax
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x64]
lea ebp, [ecx - 0x3e727921]
mov eax, 0x40000001
imul ebp
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7fffffff
xor edx, edx
sub ebp, eax
add ecx, 0xc18d86ce
cmp dword [esp + 0x14], edx
sete dl
mov dword [esp + 0x10], ebp
mov ebp, edx
mov eax, 0x40000001
imul ecx
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7fffffff
sub ecx, eax
xor edx, edx
imul ecx, ebp
test ebp, ebp
sete dl
imul edx, dword [esp + 0x10]
add ecx, edx
jmp 0x1000c4f0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x94], 0
add ecx, 0x1f020553
jmp 0x1000c513
mov ecx, dword [esp + 0x1c]
add ecx, 0x509deeb5
jmp 0x1000c513
mov ecx, dword [esp + 0x54]
add ecx, 0x82fa0f43
mov eax, 0x40000001
imul ecx
sar edx, 0x1d
mov eax, edx
mov ebp, dword [esp + 0x28]
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7fffffff
sub ecx, eax
mov edx, edi
shr edx, 2
mov eax, edx
and edx, 1
not eax
and eax, 1
mov dword [esp + 0x14], edx
imul edx, dword [esp + 0x28]
xor ebp, 0xceee2c3e
imul ebp, eax
add ebp, edx
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x60]
mov dword [esp + 0x10], eax
imul eax, eax, 0x2ef84b70
sub edx, eax
mov eax, dword [esp + 0x40]
add eax, 0x50e188fd
mov dword [esp + 0x60], edx
cdq
mov dword [esp + 0x28], ebp
mov ebp, 0x7fffffff
idiv ebp
mov eax, dword [esp + 0x14]
mov ebp, eax
imul eax, dword [esp + 0x24]
imul ebp, dword [esp + 0x40]
imul edx, dword [esp + 0x10]
add edx, ebp
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x10]
imul edx, edx, 0x5bb6fcde
sub eax, edx
mov dword [esp + 0x24], eax
or edi, 4
jmp 0x1000c4f0
mov ecx, dword [esp + 0x78]
mov eax, ecx
mov edx, ecx
imul eax, eax, 0xea9eb23a
imul edx, edx, 0xab0a6e3
add dword [esp + 0x6c], 2
and eax, 0x79f64e66
mov ebp, 0xfcfb2732
sub ebp, edx
sub ebp, eax
and ebp, 0x3cfb2733
lea eax, [eax + ebp*2]
imul eax, eax, 0x62abcecb
lea ecx, [ecx + eax + 0xf238fe9]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x34]
add ecx, 0xd246daa4
jmp 0x1000c513
mov ecx, dword [esp + 0x58]
xor ecx, 0xed831c80
jmp 0x1000c4f0
mov esi, edi
shr esi, 7
mov ecx, esi
and esi, 1
not ecx
and ecx, 1
mov edx, esi
imul edx, dword [esp + 0x5c]
mov eax, ecx
imul eax, eax, 0x6416aebe
sub edx, eax
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x44]
xor edx, 0x1a287380
imul edx, ecx
mov eax, esi
imul eax, dword [esp + 0x44]
add edx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x44], edx
mov edx, eax
xor edx, 0x1f3b9797
imul edx, ecx
mov ebp, esi
imul ebp, eax
mov eax, dword [esp + 0x24]
add eax, 0x5feec374
add edx, ebp
mov dword [esp + 0x60], edx
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, esi
imul eax, dword [esp + 0x24]
or edi, 0x80
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x20]
add eax, 0x6b8d9d97
mov dword [esp + 0x24], edx
cdq
idiv ebp
mov eax, esi
imul eax, dword [esp + 0x20]
imul edx, ecx
add edx, eax
mov dword [esp + 0x20], edx
mov edx, esi
imul esi, dword [esp + 0x3c]
imul edx, dword [esp + 0x2c]
mov eax, ecx
imul ecx, ecx, 0x65c4f3ee
imul eax, eax, 0x6bcf9431
sub edx, eax
sub esi, ecx
mov ecx, dword [esp + 0x40]
add ecx, 0x5b7cf270
mov dword [esp + 0x2c], edx
mov eax, 0x40000001
imul ecx
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x3c], esi
imul eax, eax, 0x7fffffff
mov esi, dword [esp + 0x48]
jmp 0x1000c4ec
mov edx, dword [esp + 0xa4]
mov eax, dword [edx]
mov ecx, ebx
imul ecx, ecx, 0x6f99df61
lea ecx, [ecx + eax - 0x3193c527]
mov dword [esp + 0x9c], ecx
mov eax, edi
shr eax, 4
mov ecx, eax
and eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
add eax, 0x1756e648
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, dword [esp + 0x14]
mov ebp, eax
imul eax, dword [esp + 0x50]
imul ebp, dword [esp + 0x30]
not ecx
and ecx, 1
imul edx, ecx
add edx, ebp
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x50]
xor edx, 0xfdac613a
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x38]
add eax, 0x79d5f2b0
mov dword [esp + 0x50], edx
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x38]
or edi, 0x10
imul edx, ecx
mov ecx, dword [esp + 0x2c]
add edx, eax
mov dword [esp + 0x38], edx
lea ebp, [ecx - 0x3e4571a2]
mov eax, 0x40000001
imul ebp
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7fffffff
xor edx, edx
sub ebp, eax
add ecx, 0xc1ba8e69
cmp dword [esp + 0x9c], edx
setne dl
jmp 0x1000c617
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
imul eax, eax, 0x1558a347
mov esi, edx
mov ecx, edx
imul edx, edx, 0xab0a6e3
imul esi, esi, 0xea9eb23a
imul ecx, ecx, 0xf54f591d
and esi, 0x79f64e66
add esi, eax
not eax
add eax, 0x45687efa
lea edx, [edx + esi + 0x7d9c59d3]
mov dword [esp + 0x14], edx
xor ecx, 0xc304d8cc
or eax, ecx
sub eax, ecx
mov dword [esp + 0x10], eax
mov esi, edi
shr esi, 3
mov ecx, esi
and esi, 1
not ecx
and ecx, 1
mov eax, esi
imul eax, dword [esp + 0x30]
mov edx, ecx
imul edx, edx, 0x181ac0bc
add eax, edx
mov dword [esp + 0x30], eax
mov eax, esi
imul eax, dword [esp + 0x50]
mov edx, ecx
imul edx, edx, 0x7dc5b252
sub eax, edx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x5c]
mov edx, eax
xor edx, 0x41fc246f
imul edx, ecx
mov ebp, esi
imul ebp, eax
add edx, ebp
mov dword [esp + 0x5c], edx
mov eax, esi
imul eax, dword [esp + 0x34]
mov edx, ecx
imul edx, edx, 0x7eb2064d
add eax, edx
mov dword [esp + 0x34], eax
mov eax, esi
imul eax, dword [esp + 0x58]
mov edx, ecx
imul edx, edx, 0x4f5bf529
sub eax, edx
mov dword [esp + 0x58], eax
mov eax, esi
imul eax, dword [esp + 0x18]
mov edx, ecx
imul edx, edx, 0x6cb1fe98
sub eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
mov edx, eax
xor edx, 0x74552d54
imul edx, ecx
mov ebp, esi
imul ebp, eax
mov eax, dword [esp + 0x20]
add edx, ebp
add eax, 0x5892bd37
mov dword [esp + 0x44], edx
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, esi
imul eax, dword [esp + 0x20]
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], edx
add eax, 0x792b8f27
cdq
idiv ebp
mov eax, esi
imul esi, dword [esp + 0x3c]
imul eax, dword [esp + 0x2c]
or edi, 8
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x3c]
add eax, 0x47feb9a2
mov dword [esp + 0x2c], edx
cdq
idiv ebp
mov eax, 0x40000001
imul edx, ecx
mov ecx, dword [esp + 0x24]
add edx, esi
mov dword [esp + 0x3c], edx
lea esi, [ecx + 0x6835dd6]
imul esi
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
imul eax, eax, 0x7fffffff
sub esi, eax
mov eax, dword [esp + 0x10]
mov ebp, esi
mov esi, edx
not esi
sub esi, eax
or esi, edx
and eax, edx
add esi, eax
add ecx, 0x6835dc8
mov eax, 0x40000001
imul ecx
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7fffffff
not esi
shr esi, 0x1f
not esi
and esi, 1
sub ecx, eax
xor edx, edx
imul ecx, esi
test esi, esi
mov esi, dword [esp + 0x48]
sete dl
imul edx, ebp
add ecx, edx
jmp 0x1000c4f0
mov ecx, dword [esp + 0x44]
xor ecx, 0xb7cd1234
jmp 0x1000c4f0
mov ecx, dword [esp + 0x98]
imul ecx, ecx, 0x79677ed3
mov eax, 0x565f0dc
sub eax, ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x94], eax
xor ecx, 0xec7c7fab
jmp 0x1000c4f0
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x98], 0x9fe0d0d9
add ecx, 0x42d8f8fb
jmp 0x1000c513
mov eax, edi
shr eax, 6
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
add eax, 0x8d4552b8
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
mov ebp, eax
not ebp
and ebp, 1
and eax, 1
imul eax, dword [esp + 0x38]
xor ecx, 0xc55d6347
imul edx, ebp
add edx, eax
mov dword [esp + 0x38], edx
or edi, 0x40
jmp 0x1000c4f0
movzx eax, word [esp + 0x90]
mov ecx, eax
imul eax, eax, 0x5d03
imul ecx, ecx, 0x45fa
sub ecx, 0xc69
and ecx, 0xffffa362
lea eax, [ecx + eax + 0x3483]
and eax, 0xffff
xor eax, 0xc71811de
lea edx, [eax + eax]
and edx, 0xa42926d6
sub eax, edx
sub eax, 0x511b19cd
lea esi, [eax + eax + 0x65f5a70]
and esi, 0x2a19a608
sub esi, eax
mov eax, edi
imul esi, esi, 0x1b617d91
shr eax, 8
mov ecx, eax
and eax, 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
add eax, 0x63854d79
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, dword [esp + 0x10]
mov ebp, eax
imul eax, dword [esp + 0x58]
imul ebp, dword [esp + 0x34]
not ecx
and ecx, 1
imul edx, ecx
add edx, ebp
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x58]
xor edx, 0x26bb5d95
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x18]
add eax, 0x9d79263c
mov dword [esp + 0x58], edx
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x18]
add esi, 0x7aba7fb2
or edi, 0x100
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x1c]
add eax, 0x92c3f61d
mov dword [esp + 0x18], edx
cdq
idiv ebp
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x3c]
imul edx, ecx
add edx, eax
mov dword [esp + 0x1c], edx
lea ecx, [ebp + 0x31ed6fa]
mov eax, 0x40000001
imul ecx
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7fffffff
sub ecx, eax
mov eax, esi
imul eax, eax, 0x525f1c8f
mov edx, 0x22f64c36
sub edx, eax
add eax, 0xdd09b3ca
mov dword [esp + 0x10], ecx
add ebp, 0x31ed6fb
or edx, eax
mov ecx, esi
or ecx, 0xf751cd1a
sub ecx, edx
mov eax, 0x40000001
imul ebp
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
and esi, 0x8ae32e5
imul eax, eax, 0x7fffffff
sub ecx, esi
add ecx, 0x8ae32e5
shr ecx, 0x1f
mov esi, dword [esp + 0x48]
not ecx
and ecx, 1
sub ebp, eax
xor edx, edx
imul ebp, ecx
test ecx, ecx
sete dl
imul edx, dword [esp + 0x10]
add ebp, edx
mov ecx, ebp
jmp 0x1000c4f0
mov eax, dword [esp + 0x74]
add eax, 0xdf106b1b
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x84]
add eax, 0x86ad428c
xor ecx, 0xe14f6f58
mov dword [esp + 0x68], 0x8c61d2b2
mov dword [esp + 0x64], 0x1b3e24b5
mov dword [esp + 0x74], edx
cdq
idiv ebp
mov dword [esp + 0x70], edx
jmp 0x1000c4f0
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0x9c]
add dword [eax], ecx
mov ecx, dword [esp + 0x38]
add ecx, 0x540339f8
jmp 0x1000c513
mov eax, dword [esi + 4]
sub eax, 8
shr eax, 1
mov ecx, eax
imul eax, eax, 0x9d543135
and ecx, 0x3cfb2733
imul ecx, ecx, 0x3aa8626a
sub eax, ecx
sub eax, 0x29c41f71
mov dword [esp + 0x78], eax
add esi, 8
mov dword [esp + 0x6c], esi
mov eax, edi
shr eax, 9
mov esi, eax
and eax, 1
mov edx, eax
imul edx, dword [esp + 0x44]
not esi
and esi, 1
mov ebp, esi
imul ebp, ebp, 0x2c21e35d
sub edx, ebp
mov dword [esp + 0x10], eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x60]
imul eax, edx
mov ebp, edx
xor ebp, 0x52a009cb
imul ebp, esi
add ebp, eax
mov eax, dword [esp + 0x40]
add eax, 0xb30cf053
cdq
mov dword [esp + 0x60], ebp
mov ebp, 0x7fffffff
idiv ebp
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
xor ecx, 0x7a206c80
mov dword [esp + 0x7c], 0x9dd48236
imul edx, esi
add edx, eax
mov eax, dword [esp + 0x24]
add eax, 0xffb32bdb
mov dword [esp + 0x40], edx
cdq
idiv ebp
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x24]
imul edx, esi
imul esi, esi, 0x3a82e4da
add edx, eax
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x20]
sub eax, esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
or edi, 0x200
jmp 0x1000c4f0
mov ecx, dword [esp + 0x5c]
xor ecx, 0xabc7ecc9
jmp 0x1000c4f0
mov ecx, dword [esp + 0x4c]
xor ecx, 0x765fc8e2
jmp 0x1000c4f0
mov eax, dword [esp + 0xa4]
mov esi, dword [eax + 0x14]
add esi, dword [eax]
mov eax, dword [esp + 0x80]
add eax, 0x59dfd9f1
cdq
mov ecx, 0x7fffffff
idiv ecx
mov eax, dword [esp + 0x74]
xor dword [esp + 0x8c], 0x8ff38d14
xor dword [esp + 0x84], 0x76450a23
xor dword [esp + 0x88], 0x984fc854
add eax, 0x747e149
mov dword [esp + 0x48], esi
mov dword [esp + 0x70], 0xbb9dff66
mov dword [esp + 0x80], edx
cdq
idiv ecx
xor eax, eax
test esi, esi
setne al
xor ecx, ecx
test eax, eax
sete cl
imul eax, eax, 0xa6e503e
imul ecx, ecx, 0xa6e502f
mov dword [esp + 0x74], edx
add ecx, eax
jmp 0x1000c4f0
mov edx, dword [esp + 0x4c]
xor edx, 0xb1cfe8d0
mov eax, edi
shr eax, 1
mov ecx, eax
and eax, 1
mov dword [esp + 0x10], eax
imul eax, dword [esp + 0x4c]
not ecx
and ecx, 1
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x54]
add eax, 0x32d05724
mov dword [esp + 0x4c], edx
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, dword [esp + 0x10]
mov ebp, eax
imul eax, dword [esp + 0x28]
imul ebp, dword [esp + 0x54]
or edi, 2
imul edx, ecx
add edx, ebp
mov dword [esp + 0x54], edx
mov edx, ecx
imul edx, edx, 0x3f158839
add eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x68]
add eax, 0x73db7c49
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x68]
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x64]
add eax, 0x5f0cb129
mov dword [esp + 0x68], edx
cdq
idiv ebp
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x64]
imul edx, ecx
mov ecx, dword [esp + 0x70]
add edx, eax
lea ebp, [ecx - 0x4537fab9]
mov dword [esp + 0x64], edx
mov eax, 0x40000001
imul ebp
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7fffffff
xor edx, edx
sub ebp, eax
add ecx, 0xbac80552
cmp dword [esi + 4], edx
jmp 0x1000c614
mov eax, dword [esp + 0x6c]
movzx edx, word [eax]
movzx eax, dx
imul edx, edx, 0x7b15
mov ecx, eax
and ecx, 0x7932
add ecx, ecx
sub eax, ecx
imul eax, eax, 0x256b
sub eax, 0x1e1a
movzx eax, ax
imul eax, eax, 0xdf43
mov ecx, eax
and ecx, 0x7932
add ecx, ecx
sub ecx, eax
sub ecx, 0x7933
or ecx, 0xffff0fff
xor ecx, 0x5f64ef03
sub ecx, 0x46603780
mov eax, 0xb99fc87f
sub eax, ecx
and eax, 0xa09b10fc
add eax, eax
mov ebx, eax
mov eax, 0x5a3ad97b
sub eax, ebx
sub eax, ecx
sar eax, 0xc
imul eax, eax, 0x2e3e8e17
sub eax, 0x3726bab5
mov ebx, eax
imul eax, eax, 0x557189a7
imul ebx, ebx, 0x551cecb2
mov ecx, 0x6e275227
sub ecx, ebx
and ecx, 0xce12311e
sub ecx, eax
add ecx, 0x61e33e5d
lea eax, [ecx + ecx]
mov ebx, 0xffff
sub ebx, eax
and ebx, 0x311e
add ebx, ecx
imul ebx, ebx, 0x4221
add ebx, 0x76d1
imul ebx, ebx, 0x29b5
mov eax, 0xd256
sub eax, edx
movzx eax, ax
movzx eax, ax
mov ecx, 0xcf84
sub ecx, ebx
movzx ebp, cx
mov ecx, eax
imul eax, eax, 0x3c3
imul ecx, ecx, 0x786
mov edx, 0x62e7303
sub edx, ecx
and edx, 0x738da22a
lea eax, [edx + eax - 0x3cde0a97]
and eax, 0xffff
or edx, 0xffffffff
lea ecx, [eax + eax]
sub edx, ecx
and edx, 0x1a22a
add edx, eax
imul edx, edx, 0x19aa8987
mov eax, 0x26055e6a
sub eax, edx
mov ecx, eax
imul eax, eax, 0x1efbf0db
imul ecx, ecx, 0x3a662792
mov edx, 0x22afa09d
sub edx, ecx
and edx, 0x484fec7a
imul edx, edx, 0x7f2f367d
sub eax, edx
sub eax, 0x50685a4
mov dword [esp + 0x90], ebp
imul eax, eax, 0x847b8d2b
mov ecx, eax
and eax, 0x21ac980
and ecx, 0x21ac67f
xor eax, ecx
or ecx, 0xfffff9c2
add ecx, ecx
sub ecx, eax
imul ecx, ecx, 0x51e87b05
add ecx, 0x58dc3f09
imul ecx, ecx, 0x770eec87
mov eax, 0xed78cf2
sub eax, ecx
mov ecx, dword [esi]
imul eax, eax, 0x62f03d15
imul ecx, ecx, 0x25516e71
mov ebx, 0x956dee0d
sub ebx, ecx
imul ebx, ebx, 0x39888ecf
sub ebx, eax
movzx eax, bp
mov edx, eax
imul eax, eax, 0x5d03
imul edx, edx, 0xba06
mov ecx, 0x6deaf397
sub ecx, edx
and ecx, 0x890314b6
lea eax, [ecx + eax + 0x488fbd9]
and eax, 0xffff
lea edx, [eax + eax]
or ecx, 0xffffffff
sub ecx, edx
and ecx, 0x114b6
add ecx, eax
imul ecx, ecx, 0x21be1b67
mov eax, 0x192bc346
sub eax, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
add eax, 0xbbfaa3f3
cdq
mov ebp, 0x7fffffff
idiv ebp
mov esi, edi
shr esi, 5
mov ecx, esi
and esi, 1
not ecx
and ecx, 1
mov eax, esi
imul eax, dword [esp + 0x30]
mov ebp, esi
sub ebx, 0x3b1c986c
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x30], edx
imul ebp, eax
mov edx, eax
xor edx, 0xb0a51fec
imul edx, ecx
add edx, ebp
mov dword [esp + 0x50], edx
mov eax, esi
imul eax, dword [esp + 0x38]
mov edx, ecx
imul edx, edx, 0x50b02f23
sub eax, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x5c]
mov edx, eax
xor edx, 0x7bbcc9d9
imul edx, ecx
mov ebp, esi
imul ebp, eax
mov eax, dword [esp + 0x34]
add edx, ebp
add eax, 0x55f021df
mov dword [esp + 0x5c], edx
cdq
mov ebp, 0x7fffffff
idiv ebp
imul edx, ecx
mov eax, esi
imul eax, dword [esp + 0x34]
add edx, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x34], edx
mov edx, eax
xor edx, 0x71f21b8b
imul edx, ecx
mov ebp, esi
imul ebp, eax
mov eax, dword [esp + 0x18]
add eax, 0xcfb0ef2a
add edx, ebp
mov dword [esp + 0x58], edx
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, esi
imul eax, dword [esp + 0x18]
or edi, 0x20
imul edx, ecx
add edx, eax
mov dword [esp + 0x18], edx
mov edx, esi
imul edx, dword [esp + 0x1c]
mov eax, ecx
imul eax, eax, 0x11d72fd5
sub edx, eax
mov eax, dword [esp + 0x2c]
add eax, 0x3b57c6dd
mov dword [esp + 0x1c], edx
cdq
idiv ebp
mov eax, esi
imul esi, dword [esp + 0x3c]
imul eax, dword [esp + 0x2c]
imul edx, ecx
add edx, eax
mov eax, dword [esp + 0x3c]
add eax, 0x2515b386
mov dword [esp + 0x2c], edx
cdq
idiv ebp
mov eax, 0x40000001
imul edx, ecx
add edx, esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x3c], edx
lea ecx, [esi - 0x7f2f25bd]
imul ecx
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7fffffff
sub ecx, eax
mov eax, dword [esp + 0x14]
imul eax, eax, 0x6c82fa9
mov edx, 0xd96e4d94
sub edx, eax
add eax, 0x2691b26c
or edx, eax
mov ebp, ecx
lea ecx, [esi - 0x7f2f25b3]
or esi, 0xffffffff
sub esi, edx
mov eax, 0x40000001
imul ecx
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7fffffff
shr esi, 0x1f
not esi
and esi, 1
sub ecx, eax
imul ecx, esi
xor edx, edx
test esi, esi
mov esi, dword [esp + 0x48]
sete dl
imul edx, ebp
add ecx, edx
jmp 0x1000c4f0
mov ecx, dword [esp + 0x74]
add ecx, 0xd655eae3
mov eax, 0x40000001
imul ecx
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7fffffff
sub ecx, eax
mov eax, dword [esp + 0x68]
add eax, 0xc7580844
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, dword [esp + 0x70]
add eax, 0xd5b08f7
mov dword [esp + 0x4c], 0x46f12a6d
mov dword [esp + 0x54], 0x617987dd
mov dword [esp + 0x68], edx
cdq
idiv ebp
mov eax, dword [esp + 0x64]
add eax, 0xce95f387
mov dword [esp + 0x70], edx
cdq
idiv ebp
mov dword [esp + 0x64], edx
jmp 0x1000c4f0
mov ecx, dword [esp + 0x18]
add ecx, 0x9f63964
mov eax, 0x40000001
imul ecx
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x7fffffff
sub ecx, eax
mov eax, edi
shr eax, 0xa
mov esi, eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
add eax, 0x38e39b39
cdq
mov ebp, 0x7fffffff
idiv ebp
mov eax, dword [esp + 0x14]
add dword [esp + 0x6c], 2
sub dword [esp + 0x7c], 0x69e3e989
not esi
and esi, 1
and eax, 1
imul eax, dword [esp + 0x1c]
imul esi, edx
add esi, eax
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x48]
or edi, 0x400
jmp 0x1000c4f0
mov ecx, dword [esp + 0x8c]
xor ecx, 0xd7ccef67
jmp 0x1000c4f0
add esi, dword [esi + 4]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x48], esi
xor ecx, 0x96f27a8a
jmp 0x1000c4f0
mov eax, dword [esp + 0x94]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret