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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov ebx, ecx
or ebx, 0x100000
test eax, eax
cmove ebx, ecx
lea edx, [eax - 0x435]
mov ebp, 0xfffffbcc
cmovne ebp, edx
mov esi, dword [esp + 0x70]
mov edx, ebx
shld edx, esi, 2
mov dword [esp + 0x50], edx
or ecx, esi
setne cl
cmp eax, 2
setb dl
or dl, cl
lea eax, [esi*4]
mov dword [esp + 0x18], eax
test ebp, ebp
mov dword [esp + 0x30], edx
js 0x1011a2b5
imul ecx, ebp, 0x13441
shr ecx, 0x12
cmp ebp, 4
adc ecx, 0xffffffff
mov edi, ebp
mov ebp, ecx
shl ebp, 4
mov eax, dword [esp + 0x70]
lea esi, [eax + eax]
mov eax, dword [ebp + 0x101b8ad0]
mov dword [esp + 8], eax
mul esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], eax
mov dword [esp], edx
mov eax, ecx
sub eax, edi
mov dword [esp + 0x44], eax
mov edi, dword [ebp + 0x101b8ad4]
mov dword [esp + 0x1c], edi
mov eax, edi
mul esi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x70]
shld ebx, eax, 1
mov eax, dword [esp + 8]
mul ebx
mov dword [esp + 4], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
imul eax, ecx, 0x12934f
shr eax, 0x13
mov dword [esp + 0x38], eax
mov eax, edi
mul ebx
mov esi, eax
mov eax, dword [esp + 4]
add eax, dword [esp]
adc esi, dword [esp + 0x24]
adc edx, 0
add eax, dword [esp + 0x14]
mov dword [esp + 4], eax
adc esi, dword [esp + 0xc]
adc edx, 0
mov dword [esp + 0xc], edx
mov ecx, dword [ebp + 0x101b8ad8]
mov eax, ecx
mov dword [esp + 0x34], ecx
mov edi, dword [esp + 0x10]
mul edi
mov dword [esp], eax
mov dword [esp + 0x2c], edx
mov ebp, dword [ebp + 0x101b8adc]
mov eax, ebp
mov dword [esp + 0x24], ebp
mul edi
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
mov eax, ecx
mul ebx
mov ecx, edx
mov edi, eax
mov eax, ebp
mul ebx
mov ebx, edx
add edi, dword [esp + 0x2c]
adc eax, ecx
adc ebx, 0
add edi, dword [esp + 0x14]
adc eax, dword [esp + 0x10]
adc ebx, 0
mov edx, dword [esp]
add edx, esi
adc edi, dword [esp + 0xc]
adc eax, 0
adc ebx, 0
mov ecx, edx
mov esi, edx
add ecx, dword [esp + 0x34]
mov ebp, edi
adc ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
add edx, dword [esp + 8]
mov edx, dword [esp + 4]
adc edx, dword [esp + 0x1c]
adc ecx, 0
adc ebp, 0
mov dword [esp], esi
cmp ecx, esi
mov ecx, ebp
mov dword [esp + 0xc], edi
sbb ecx, edi
mov dword [esp + 0x48], eax
mov esi, eax
adc esi, 0
mov dword [esp + 0x10], ebx
adc ebx, 0
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x38]
mov ecx, 7
sub ecx, edx
sub ecx, edi
shld ebx, esi, cl
shl esi, cl
mov dword [esp + 0x3c], ecx
test cl, 0x20
cmovne ebx, esi
mov eax, 0
cmovne esi, eax
lea ecx, [edx + edi]
add ecx, 0x19
mov dword [esp + 0x4c], ecx
shr ebp, cl
mov dword [esp + 0x40], ebp
cmp byte [esp + 0x30], 0
mov dword [esp + 0x14], esi
mov dword [esp + 0x2c], ebx
je 0x1011a498
mov ebp, dword [esp]
mov ecx, ebp
sub ecx, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
mov ebx, eax
sbb ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp esi, dword [esp + 8]
mov esi, dword [esp + 4]
sbb esi, dword [esp + 0x1c]
sbb ecx, 0
sbb ebx, 0
cmp ebp, ecx
mov ecx, eax
sbb ecx, ebx
mov eax, dword [esp + 0x48]
mov ebp, eax
sbb ebp, 0
mov edi, dword [esp + 0x10]
mov esi, edi
sbb esi, 0
mov edx, dword [esp + 0x3c]
mov ecx, edx
shld esi, ebp, cl
shl ebp, cl
test dl, 0x20
cmovne esi, ebp
mov dword [esp + 0x1c], esi
mov ecx, 0
cmovne ebp, ecx
mov ecx, dword [esp + 0x4c]
shr ebx, cl
mov esi, dword [esp + 0x40]
jmp 0x1011a543
imul esi, ebp, 0xfff4d105
shr esi, 0x14
xor eax, eax
cmp ebp, 0xffffffff
setne al
sub esi, eax
add ebp, esi
imul eax, ebp, 0xffed6cb1
shr eax, 0x13
mov dword [esp + 0x20], eax
mov eax, 0x101b9d10
mov dword [esp + 0x34], ebp
shl ebp, 4
sub eax, ebp
mov ecx, dword [esp + 0x70]
add ecx, ecx
mov edi, dword [eax]
mov dword [esp + 0x24], edi
mov eax, edi
mov dword [esp + 0x14], ecx
mul ecx
mov dword [esp + 0x1c], eax
mov dword [esp], edx
mov eax, 0x101b9d14
sub eax, ebp
mov eax, dword [eax]
mov dword [esp + 4], eax
mul ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x70]
shld ebx, eax, 1
mov eax, edi
mul ebx
mov edi, eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x44], esi
sub esi, dword [esp + 0x20]
mov dword [esp + 8], esi
mov eax, dword [esp + 4]
mul ebx
add edi, dword [esp]
adc eax, dword [esp + 0x2c]
adc edx, 0
add edi, dword [esp + 0x10]
mov dword [esp + 0x28], edi
adc eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
adc edx, 0
mov dword [esp + 0xc], edx
mov eax, 0x101b9d18
sub eax, ebp
mov esi, dword [eax]
mov eax, esi
mov ecx, dword [esp + 0x14]
mul ecx
mov dword [esp], eax
mov dword [esp + 0x2c], edx
mov eax, 0x101b9d1c
sub eax, ebp
mov edi, dword [eax]
mov eax, edi
mul ecx
mov ecx, edx
mov dword [esp + 0x14], eax
mov eax, esi
mul ebx
mov ebp, eax
mov dword [esp + 0x38], edx
mov eax, edi
mul ebx
add ebp, dword [esp + 0x2c]
adc eax, dword [esp + 0x38]
adc edx, 0
add ebp, dword [esp + 0x14]
adc eax, ecx
adc edx, 0
mov ebx, dword [esp]
add ebx, dword [esp + 0x10]
adc ebp, dword [esp + 0xc]
adc eax, 0
adc edx, 0
mov ecx, ebx
mov dword [esp + 0x40], esi
add ecx, esi
mov esi, ebp
mov dword [esp + 0x3c], edi
adc esi, edi
mov edi, dword [esp + 0x1c]
add edi, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
adc edi, dword [esp + 4]
adc ecx, 0
adc esi, 0
mov dword [esp], ebx
cmp ecx, ebx
mov ecx, esi
sbb ecx, ebp
mov edi, eax
adc edi, 0
mov dword [esp + 0x10], edx
mov ebx, edx
adc ebx, 0
mov ecx, 9
mov edx, dword [esp + 8]
sub ecx, edx
shld ebx, edi, cl
shl edi, cl
mov dword [esp + 0x38], ecx
test cl, 0x20
cmovne ebx, edi
mov dword [esp + 0x2c], ebx
mov ecx, 0
cmovne edi, ecx
mov dword [esp + 0x14], edi
add edx, 0x17
mov dword [esp + 8], edx
mov ecx, edx
shr esi, cl
mov dword [esp + 0x4c], esi
cmp byte [esp + 0x30], 0
mov dword [esp + 0xc], ebp
je 0x1011a6a1
mov edi, dword [esp]
mov ecx, edi
sub ecx, dword [esp + 0x40]
mov ebx, ebp
sbb ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x1c]
cmp esi, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
sbb esi, dword [esp + 4]
sbb ecx, 0
sbb ebx, 0
cmp edi, ecx
mov ecx, ebp
sbb ecx, ebx
mov edi, eax
sbb edi, 0
mov edx, dword [esp + 0x10]
mov ebp, edx
sbb ebp, 0
mov ecx, dword [esp + 0x38]
shld ebp, edi, cl
shl edi, cl
test cl, 0x20
cmovne ebp, edi
mov ecx, 0
cmovne edi, ecx
mov ecx, dword [esp + 8]
jmp 0x1011a73d
mov ebx, dword [esp]
mov edx, ebx
mov ecx, dword [esp + 4]
shld edx, ecx, 1
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x20]
shld ecx, eax, 1
mov esi, dword [esp + 0xc]
shld esi, ebx, 1
add eax, eax
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
shld edi, eax, 1
cmp edx, ebx
mov ebp, esi
sbb ebp, dword [esp + 0xc]
setb byte [esp + 4]
mov ebp, edx
sub ebp, dword [esp + 0x34]
mov ebx, esi
sbb ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
cmp edx, dword [esp + 8]
sbb ecx, dword [esp + 0x1c]
sbb ebp, 0
sbb ebx, 0
cmp dword [esp + 0x54], ebp
sbb esi, ebx
movzx ecx, byte [esp + 4]
lea ebp, [ecx + eax*2]
sbb ebp, 0
sbb edi, 0
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x38]
lea edx, [ecx + esi]
add edx, 0x7a
mov cl, 0x80
sub cl, dl
shld edi, ebp, cl
shl ebp, cl
test cl, 0x20
cmovne edi, ebp
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x10]
mov ecx, 0
cmovne ebp, ecx
mov ecx, edx
shr ebx, cl
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov ecx, edx
shld edi, eax, cl
shl eax, cl
or ebx, ebp
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x14]
or ebx, esi
test dl, 0x20
mov edx, 0
cmovne edi, eax
cmovne eax, edx
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0xc]
shr esi, cl
or esi, eax
cmp dword [esp + 0x28], 0x15
mov eax, esi
mov dword [esp + 0xc], esi
ja 0x1011a69a
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x18]
and esi, 0xfffffffc
xor eax, eax
mov edi, 0xcccccccc
inc edi
sete al
mov ebp, eax
mov eax, esi
mul edi
mov dword [esp + 0x20], edx
mov eax, esi
mov ecx, 0xcccccccc
mul ecx
mov dword [esp], eax
mov dword [esp + 8], edx
mov ebx, esi
imul ebx, ebp
mov ecx, dword [esp + 0x50]
mov eax, ecx
mul edi
mov esi, eax
mov edi, edx
add ebx, dword [esp + 0x20]
imul ebp, ecx
mov eax, ecx
mov ecx, 0xcccccccc
mul ecx
add esi, ebx
adc edi, ebp
and esi, 0xfffffff0
add esi, dword [esp]
mov ecx, dword [esp + 8]
adc ecx, 0
add edi, eax
adc edx, 0
add edi, ecx
adc edx, 0
shld edx, edi, 0x1e
lea eax, [edx + edx*4]
mov edx, dword [esp + 0x18]
cmp eax, edx
jne 0x1011a7fa
mov esi, 0xffffffff
mov ebp, dword [esp + 0x50]
nop dword [eax]
mov dword [esp + 8], esi
xor ebx, ebx
mov ecx, 0xcccccccc
inc ecx
sete bl
mov eax, edx
mov esi, edx
mov dword [esp + 0x18], edx
mul ecx
mov dword [esp + 0x24], edx
mov eax, esi
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x20], eax
mov dword [esp], edx
imul esi, ebx
mov eax, ebp
mul ecx
mov edi, eax
mov ecx, edx
add esi, dword [esp + 0x24]
imul ebx, ebp
mov eax, ebp
mov edx, 0xcccccccc
mul edx
add edi, esi
mov esi, dword [esp + 8]
adc ecx, ebx
and edi, 0xfffffffc
add edi, dword [esp + 0x20]
mov ebx, dword [esp]
adc ebx, 0
add ecx, eax
mov ebp, edx
adc ebp, 0
add ecx, ebx
adc ebp, 0
shrd ecx, ebp, 2
shr ebp, 2
lea eax, [ecx + ecx*4]
inc esi
cmp eax, dword [esp + 0x18]
mov edx, ecx
je 0x1011a610
cmp esi, dword [esp + 0x28]
setae dl
xor eax, eax
jmp 0x1011a97f
xor eax, eax
jmp 0x1011a987
mov edi, dword [esp]
mov ebx, edi
mov ecx, dword [esp + 0x28]
shld ebx, ecx, 1
mov dword [esp + 0x48], ebx
mov esi, dword [esp + 0x1c]
shld ecx, esi, 1
neg dword [esp + 0x20]
mov ebp, dword [esp + 0xc]
shld ebp, edi, 1
add esi, esi
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
shld dword [esp + 0x1c], eax, 1
cmp ebx, edi
mov edi, ebp
sbb edi, dword [esp + 0xc]
setb dl
mov edi, ebx
sub edi, dword [esp + 0x40]
mov ebx, ebp
sbb ebx, dword [esp + 0x3c]
cmp esi, dword [esp + 0x24]
sbb ecx, dword [esp + 4]
sbb edi, 0
sbb ebx, 0
cmp dword [esp + 0x48], edi
movzx ecx, dl
lea edi, [ecx + eax*2]
sbb ebp, ebx
mov ebp, dword [esp + 0x1c]
sbb edi, 0
sbb ebp, 0
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x20]
add esi, ecx
add esi, 0x78
mov cl, 0x80
mov edx, esi
sub cl, dl
mov edx, dword [esp + 0x10]
shld ebp, edi, cl
shl edi, cl
test cl, 0x20
cmovne ebp, edi
mov ecx, 0
cmovne edi, ecx
mov ecx, esi
shr ebx, cl
mov ecx, dword [esp + 0x38]
shld edx, eax, cl
shl eax, cl
or ebx, edi
mov edi, dword [esp + 0x14]
or edi, dword [esp + 0x4c]
xor esi, esi
test cl, 0x20
cmovne edx, eax
mov dword [esp + 0x10], edx
cmove esi, eax
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
shr eax, cl
or eax, esi
mov ecx, dword [esp + 0x44]
cmp ecx, 1
mov dword [esp + 0xc], eax
mov dword [esp + 4], ebx
ja 0x1011a7a8
mov eax, dword [esp + 0x70]
and eax, 1
sete cl
sub edi, eax
mov dword [esp + 0x14], edi
sbb dword [esp + 0x2c], 0
mov eax, dword [esp + 0x30]
and al, cl
mov dword [esp + 0x30], eax
mov al, 1
mov dword [esp + 8], eax
jmp 0x1011ab06
mov edx, edi
xor esi, esi
cmp ecx, 0x3e
ja 0x1011a8bf
dec cl
mov eax, 0xffffffff
shl eax, cl
test cl, 0x20
mov ecx, 0xffffffff
cmovne ecx, eax
cmovne eax, esi
not ecx
mov esi, dword [esp + 0x50]
and esi, ecx
not eax
mov ecx, dword [esp + 0x18]
and ecx, eax
or ecx, esi
sete al
mov esi, eax
xor eax, eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], ecx
mov edi, dword [esp + 0x10]
mov ebx, edx
mov edx, esi
jmp 0x1011a98b
mov eax, dword [esp + 0x70]
test al, 1
mov edi, dword [esp + 0x50]
je 0x1011a8d6
or edx, 2
mov esi, 0xffffffff
nop word cs:[eax + eax]
mov dword [esp + 8], esi
xor ebx, ebx
mov ecx, 0xcccccccc
inc ecx
sete bl
mov eax, edx
mov esi, edx
mov dword [esp + 0x18], edx
mul ecx
mov dword [esp + 0x24], edx
mov eax, esi
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x20], eax
mov dword [esp], edx
imul esi, ebx
mov eax, edi
mul ecx
mov ebp, edi
mov edi, eax
mov ecx, edx
add esi, dword [esp + 0x24]
imul ebx, ebp
mov eax, ebp
mov edx, 0xcccccccc
mul edx
add edi, esi
mov esi, dword [esp + 8]
adc ecx, ebx
and edi, 0xfffffffc
add edi, dword [esp + 0x20]
mov ebx, dword [esp]
adc ebx, 0
add ecx, eax
mov edi, edx
adc edi, 0
add ecx, ebx
adc edi, 0
shrd ecx, edi, 2
shr edi, 2
lea eax, [ecx + ecx*4]
inc esi
cmp eax, dword [esp + 0x18]
mov edx, ecx
je 0x1011a820
xor eax, eax
cmp esi, dword [esp + 0x28]
setae al
mov ebx, dword [esp + 0x14]
sub ebx, eax
sbb dword [esp + 0x2c], 0
xor edx, edx
xor eax, eax
mov edi, dword [esp + 0x10]
jmp 0x1011a987
xor eax, eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], ecx
mov edi, dword [esp + 0x10]
mov ebx, edx
xor edx, edx
jmp 0x1011a98b
movzx ebp, byte [esp + 0x30]
not ebp
add ebp, edx
adc edi, 0xffffffff
mov ecx, 0xffffffff
nop word [eax + eax]
mov dword [esp + 0x18], ecx
xor ecx, ecx
mov esi, edi
mov edi, 0xcccccccc
inc edi
sete cl
mov dword [esp + 8], ebp
mov eax, ebp
mul edi
mov dword [esp + 0x24], edx
mov eax, ebp
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x20], eax
mov dword [esp], edx
mov ebx, ebp
imul ebx, ecx
mov eax, esi
mul edi
mov edi, eax
mov ebp, edx
add ebx, dword [esp + 0x24]
imul ecx, esi
mov eax, esi
mov edx, 0xcccccccc
mul edx
add edi, ebx
adc ebp, ecx
mov ecx, dword [esp + 0x18]
and edi, 0xfffffffc
add edi, dword [esp + 0x20]
mov esi, dword [esp]
adc esi, 0
add ebp, eax
mov edi, edx
adc edi, 0
add ebp, esi
adc edi, 0
shrd ebp, edi, 2
shr edi, 2
lea eax, [ebp*4]
add eax, ebp
inc ecx
cmp eax, dword [esp + 8]
je 0x1011a8f0
cmp ecx, dword [esp + 0x28]
setae al
xor edx, edx
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
test dl, dl
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ebx
jne 0x1011aaf6
test al, al
jne 0x1011aaf6
mov esi, dword [esp + 0x2c]
mov ecx, esi
shld ecx, ebx, 0x1e
mov edi, 0x5c28f5c3
mov eax, ecx
mul edi
mov dword [esp], edx
mov edx, 0x28f5c28f
mov eax, ecx
mul edx
mov dword [esp + 8], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], esi
mov ecx, esi
shr ecx, 2
mov eax, ecx
mul edi
mov esi, edx
mov edi, eax
mov eax, ecx
mov ecx, 0x28f5c28f
mul ecx
mov ecx, eax
mov ebx, edx
add edi, dword [esp]
adc ecx, esi
adc ebx, 0
add edi, dword [esp + 8]
adc ecx, dword [esp + 0x18]
adc ebx, 0
shrd ecx, ebx, 2
mov esi, ebp
mov eax, dword [esp + 4]
shld esi, eax, 0x1e
mov eax, esi
mov edi, 0x5c28f5c3
mul edi
mov dword [esp], edx
mov eax, esi
mov edx, 0x28f5c28f
mul edx
mov dword [esp + 8], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebp
mov esi, ebp
shr esi, 2
mov eax, esi
mul edi
mov edi, eax
mov ebp, edx
shr ebx, 2
mov eax, esi
mov esi, ecx
mov ecx, 0x28f5c28f
mul ecx
add edi, dword [esp]
adc eax, ebp
adc edx, 0
add edi, dword [esp + 8]
adc eax, dword [esp + 0x18]
adc edx, 0
shrd eax, edx, 2
shr edx, 2
cmp eax, esi
mov ecx, edx
sbb ecx, ebx
jae 0x1011aec0
mov dword [esp], edx
mov dword [esp + 8], eax
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], esi
mov esi, ecx
mov eax, dword [esp + 0xc]
shld esi, eax, 0x1e
mov eax, esi
mov edi, 0x5c28f5c3
mul edi
mov ebp, edx
mov eax, esi
mov ebx, 0x28f5c28f
mul ebx
mov dword [esp + 0x20], eax
mov dword [esp + 4], edx
shr ecx, 2
mov eax, ecx
mul edi
mov esi, edx
mov edi, eax
mov eax, ecx
mul ebx
add edi, ebp
adc eax, esi
mov ebx, dword [esp + 0x18]
adc edx, 0
add edi, dword [esp + 0x20]
adc eax, dword [esp + 4]
adc edx, 0
shrd eax, edx, 2
shr edx, 2
mov dword [esp + 0x10], edx
imul ecx, eax, 0xffffff9c
add ecx, dword [esp + 0xc]
cmp ecx, 0x32
setae cl
mov dword [esp + 0x30], ecx
mov dword [esp + 0x24], 2
mov dword [esp + 0xc], eax
jmp 0x1011af98
mov dword [esp + 8], edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x34], eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
nop word [eax + eax]
xor ebx, ebx
mov esi, 0xcccccccc
inc esi
sete bl
mov ecx, dword [esp + 0x14]
mov eax, ecx
mul esi
mov dword [esp], esi
mov edi, edx
mov ebp, ecx
mov eax, ecx
mov ecx, 0xcccccccc
mul ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], edx
imul ebp, ebx
add ebp, edi
mov edi, dword [esp + 0x2c]
mov eax, edi
mul esi
mov esi, eax
mov ecx, edi
imul ecx, ebx
mov dword [esp + 0x18], ebx
mov eax, edi
mov edi, edx
mov edx, 0xcccccccc
mul edx
add esi, ebp
adc edi, ecx
and esi, 0xfffffffc
add esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
adc ecx, 0
mov esi, edi
add esi, eax
mov ebp, edx
adc ebp, 0
add esi, ecx
adc ebp, 0
mov ecx, dword [esp + 4]
mov eax, ecx
mul dword [esp]
mov edi, ecx
imul edi, ebx
add edi, edx
mov eax, ecx
mov ecx, 0xcccccccc
mul ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
shrd esi, ebp, 3
mov dword [esp + 0x14], esi
mov ebx, dword [esp + 0x1c]
mov eax, ebx
mul dword [esp]
mov esi, eax
mov ecx, edx
shr ebp, 3
mov eax, dword [esp + 0x18]
imul eax, ebx
mov dword [esp + 0x18], eax
mov eax, ebx
mov edx, 0xcccccccc
mul edx
mov ebx, edx
add esi, edi
adc ecx, dword [esp + 0x18]
and esi, 0xfffffffc
add esi, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
adc edx, 0
add ecx, eax
adc ebx, 0
add ecx, edx
adc ebx, 0
shrd ecx, ebx, 3
shr ebx, 3
cmp ecx, dword [esp + 0x14]
mov eax, ebx
mov dword [esp + 0x2c], ebp
sbb eax, ebp
jae 0x1011acf5
xor eax, eax
mov esi, 0xcccccccc
inc esi
sete al
mov ebp, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mul esi
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0xc]
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x1c], eax
mov dword [esp], edx
mov edi, dword [esp + 0xc]
imul edi, ebp
mov eax, dword [esp + 0x10]
mul esi
mov esi, eax
mov ebp, edx
add edi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
imul eax, edx
mov dword [esp + 0x18], eax
mov eax, edx
mov edx, 0xcccccccc
mul edx
add esi, edi
adc ebp, dword [esp + 0x18]
and esi, 0xfffffffc
add esi, dword [esp + 0x1c]
mov esi, dword [esp]
adc esi, 0
add ebp, eax
mov eax, edx
adc eax, 0
add ebp, esi
adc eax, 0
mov edi, eax
shld edi, ebp, 0x1d
shr ebp, 2
and ebp, 0xfffffffe
lea edx, [ebp*4]
add edx, ebp
neg edx
add dl, byte [esp + 0xc]
mov ebp, edx
lea esi, [ecx + ecx]
lea esi, [esi + esi*4]
shr eax, 3
mov dword [esp + 0x10], eax
cmp esi, dword [esp + 4]
sete al
mov edx, dword [esp + 0x30]
and dl, al
mov dword [esp + 0x30], edx
cmp byte [esp + 0x20], 0
sete al
mov edx, dword [esp + 8]
and dl, al
mov dword [esp + 8], edx
inc dword [esp + 0x24]
mov dword [esp + 4], ecx
mov dword [esp + 0x1c], ebx
mov eax, ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0xc], edi
jmp 0x1011ab20
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
and al, 1
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x30]
xor cl, 1
test cl, 1
jne 0x1011ae64
mov dword [esp + 0x30], ecx
mov ecx, edx
nop dword [eax]
mov dword [esp + 4], ecx
xor ebx, ebx
mov esi, 0xcccccccc
inc esi
sete bl
mov eax, ecx
mul esi
mov ecx, edx
mov edi, dword [esp + 4]
mov eax, dword [esp + 4]
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
imul edi, ebx
add edi, ecx
mov eax, ebp
mul esi
mov esi, ebp
mov ebp, eax
mov ecx, edx
imul ebx, esi
mov dword [esp + 0x1c], esi
mov eax, esi
mov edx, 0xcccccccc
mul edx
mov esi, edx
add ebp, edi
mov edx, dword [esp + 4]
adc ecx, ebx
and ebp, 0xfffffffc
add ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
adc edi, 0
add ecx, eax
adc esi, 0
add ecx, edi
adc esi, 0
shrd ecx, esi, 3
lea eax, [ecx + ecx]
lea eax, [eax + eax*4]
cmp eax, edx
jne 0x1011ae6c
shr esi, 3
xor eax, eax
mov edi, 0xcccccccc
inc edi
sete al
mov ebp, eax
mov dword [esp + 4], eax
mov ebx, dword [esp + 0xc]
mov eax, ebx
mul edi
mov dword [esp], edx
mov eax, ebx
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov ebx, dword [esp + 0xc]
imul ebx, ebp
mov eax, dword [esp + 0x10]
mul edi
mov ebp, eax
mov edi, edx
add ebx, dword [esp]
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x10]
imul eax, edx
mov dword [esp + 4], eax
mov eax, edx
mov edx, 0xcccccccc
mul edx
add ebp, ebx
adc edi, dword [esp + 4]
and ebp, 0xfffffffc
add ebp, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
adc ebp, 0
add edi, eax
mov ebx, edx
adc ebx, 0
add edi, ebp
adc ebx, 0
mov eax, ebx
shld eax, edi, 0x1d
shr edi, 2
and edi, 0xfffffffe
lea edx, [edi + edi*4]
neg edx
add dl, byte [esp + 0xc]
shr ebx, 3
mov dword [esp + 0x10], ebx
cmp byte [esp + 0x20], 0
sete byte [esp + 0xc]
cmp byte [esp + 8], 0
setne bl
and bl, byte [esp + 0xc]
mov dword [esp + 8], ebx
inc dword [esp + 0x24]
mov ebp, esi
mov dword [esp + 0x20], edx
mov dword [esp + 0xc], eax
jmp 0x1011ad20
mov ebx, dword [esp + 0xc]
mov edi, ebp
jmp 0x1011ae78
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x70]
test al, 1
sete al
xor cl, 1
test al, cl
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x34]
jne 0x1011aea2
mov ch, 1
xor edx, ebx
xor edi, esi
or edi, edx
je 0x1011b0b0
cmp byte [esp + 8], 0
sete cl
cmp byte [esp + 0x20], 5
setne ch
setae dl
or ch, cl
or ch, bl
and ch, dl
jmp 0x1011b0b0
mov dword [esp + 0x30], 0
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 0x24], 0
jmp 0x1011af98
xor eax, eax
mov ebx, 0xcccccccc
inc ebx
sete al
mov ebp, eax
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xc]
mov eax, ecx
mul ebx
mov dword [esp + 0x20], edx
mov eax, ecx
mov edx, 0xcccccccc
mul edx
mov dword [esp], eax
mov dword [esp + 8], edx
imul ecx, ebp
mov eax, dword [esp + 0x10]
mul ebx
mov ebx, eax
mov ebp, edx
add ecx, dword [esp + 0x20]
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x10]
imul eax, edx
mov dword [esp + 4], eax
mov eax, edx
mov edx, 0xcccccccc
mul edx
add ebx, ecx
adc ebp, dword [esp + 4]
and ebx, 0xfffffffc
add ebx, dword [esp]
mov ecx, dword [esp + 8]
adc ecx, 0
add ebp, eax
adc edx, 0
add ebp, ecx
adc edx, 0
shrd ebp, edx, 3
mov eax, ebp
add eax, ebp
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0xc]
sub ecx, eax
shr edx, 3
mov dword [esp + 0x10], edx
cmp ecx, 5
setae al
mov dword [esp + 0x30], eax
inc dword [esp + 0x24]
mov dword [esp + 8], esi
mov dword [esp], edi
mov dword [esp + 0xc], ebp
mov ebx, dword [esp + 0x18]
xor eax, eax
mov esi, 0xcccccccc
inc esi
sete al
mov edi, eax
mov dword [esp + 4], eax
mov eax, ebx
mul esi
mov dword [esp + 0x20], esi
mov ebp, edx
mov ecx, ebx
mov eax, ebx
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
imul ecx, edi
add ecx, ebp
mov ebx, dword [esp + 0x14]
mov eax, ebx
mul esi
mov ebp, eax
mov esi, ebx
imul esi, edi
mov eax, ebx
mov edi, edx
mov edx, 0xcccccccc
mul edx
add ebp, ecx
adc edi, esi
and ebp, 0xfffffffc
add ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
adc ecx, 0
add edi, eax
mov ebx, edx
adc ebx, 0
add edi, ecx
adc ebx, 0
mov esi, dword [esp + 8]
mov eax, esi
mov ebp, dword [esp + 0x20]
mul ebp
mov ecx, esi
imul ecx, dword [esp + 4]
add ecx, edx
mov eax, esi
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
shrd edi, ebx, 3
mov dword [esp + 0x18], edi
mov edi, dword [esp]
mov eax, edi
mul ebp
mov ebp, eax
mov esi, edx
shr ebx, 3
mov eax, dword [esp + 4]
imul eax, edi
mov dword [esp + 4], eax
mov eax, edi
mov edx, 0xcccccccc
mul edx
mov edi, edx
add ebp, ecx
adc esi, dword [esp + 4]
and ebp, 0xfffffffc
add ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
adc ecx, 0
add esi, eax
adc edi, 0
add esi, ecx
adc edi, 0
shrd esi, edi, 3
shr edi, 3
cmp esi, dword [esp + 0x18]
mov eax, edi
mov dword [esp + 0x14], ebx
sbb eax, ebx
jb 0x1011aef0
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 8]
xor eax, ebx
mov esi, dword [esp + 0x10]
mov ecx, dword [esp]
xor ecx, esi
or ecx, eax
sete ch
or ch, byte [esp + 0x30]
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x24]
movzx ecx, ch
and ecx, 1
add ecx, ebx
adc esi, 0
add ebp, edx
mov dword [eax + 8], ebp
mov dword [eax], ecx
mov dword [eax + 4], esi
add esp, 0x58
pop esi
pop edi
pop ebx
pop ebp
ret